操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    支持 Windows

    2024 年 4 月 1 日 Bun v1.1 如期發布,開發者現在可以在 Windows 10 及更高版本上運行 Bun。 這是一個巨大的里程碑,也意味著 Bun 能讓更多的開發者受益。

    Windows 上的 Bun 通過了 macOS 和 Linux 上的 Bun 測試套件的 98% 測試。 這意味著從運行時、測試運行器、包管理器到打包器的所有內容都可以在 Windows 上運行。

    要開始在 Windows 上使用 Bun,可以在終端中運行以下命令:

    powershell -c "irm bun.sh/install.ps1 | iex"

    Windows 上運行 Bun 帶來了巨大的性能提升,比如:

    • 安裝 Vite React 應用程序時,bun install 的運行速度比 Windows 上的 Yarn 快 18 倍,比 npm 快 30 倍
    • 支持使用 Bun run 來運行腳本,這是比 npm run 更快的替代方案,最終比 npm run 快 11 倍,bunx 也比 npx 快 11 倍。
    • 支持 bun --watch,優化了大量 control-s 和進程重新加載之間所需的時間。

    Windows 上的 Node.js API

    Bun 在 Windows 上優化了 Node.js API 以使用 Windows 上最快的系統調用。

    例如,Bun 上的 fs.readdir() 比 Windows 上的 Node.js 快 58%。

    fs.readdir(__dirname, (err, files)=> {
      if (err)
        console.log(err);
      else {
        console.log("\nCurrent directory filenames:");
        files.forEach(file=> {
          console.log(file);
        })
      }
    })

    大型項目啟動速度提高 2 倍

    Bun 內置了對 JavaScript、TypeScript 和 JSX 的支持,由 Bun 高度優化的本機代碼編寫的轉譯器提供支持。

    Summary
      bun --bun ./node_modules/.bin/tsc --help ran
        1.38 ± 0.06 times faster than node ./node_modules/.bin/tsc --help
        2.40 ± 0.09 times faster than bun-1.0.14 --bun ./node_modules/.bin/tsc --help

    自 Bun 1.0 以來為大于 50KB 的文件實現了內容可尋址緩存,以避免重復轉譯相同文件的性能開銷。從而使得 tsc 等命令行工具的運行速度比 Bun 1.0 快 2 倍。然而 Bun v1.1 性能得到明顯提升。

    支持 Bun Shell

    Bun 現在是一個跨平臺的 shell,類似于 bash,但也可以在 Windows 上運行。

    import {spawnSync} from "child_process";
    // 這里可以做很多事情
    const {status, stdout, stderr}=spawnSync("ls", ["-l", "*.js"], {
      encoding: "utf8",
    });

    Bun Shell 是一個詞法分析器、解析器和解釋器,實現了類似 bash 的編程語言,以及一系列核心實用程序,例如 ls、rm 和 cat。 shell 還可以使用 Bun.$ API 從 JavaScript 和 TypeScript 運行。

    import {$} from "bun";
    // 輸出到 stdout
    await $`ls *.js`;
    // 輸出到 string 字符串
    const text=await $`ls *.js`.text();

    該語法使得在 shell 和 JavaScript 之間傳遞參數、緩沖區和管道變得容易:

    const response=await fetch("https://example.com/");
    // 響應輸出到 stdin
    // 將 stdout 寫入到 JavaScript
    const stdout=await $`gzip -c <${response}`.arrayBuffer();

    Bun.Glob

    Bun 現在有一個內置的 Glob API,用于使用 glob 模式匹配文件和字符串,其與流行的 Node.js 庫(如 fast-glob 和 micromatch)類似,但它匹配字符串的速度快了 3 倍。

    使用 glob.match() 將字符串與 glob 模式進行匹配:

    import {Glob} from "bun";
    const glob=new Glob("**/*.ts");
    const match=glob.match("src/index.ts");
    // 輸出 true

    使用 glob.scan() 通過 AsyncIterator 列出與 glob 模式匹配的文件:

    const glob=new Glob("**/*.ts");
    for await (const path of glob.scan("src")) {
      console.log(path);
      // 輸出內容 "src/index.ts", "src/utils.ts"
    }

    更多關于 Bun v1.1 新特性可以參考文末資料,本文不再過多展開。

    參考資料

    https://bun.sh/blog/bun-v1.1#large-projects-start-2x-faster

    https://www.geeksforgeeks.org/node-js-fs-readdir-method/

    https://www.oschina.net/news/285850/bun-1-1-released

    近日,隨著 WinterJS 1.0 的發布,Bun 這邊也加快了開發進展,截止發文,Bun for Windows 目前通過了 Bun 測試套件的 93.88%,一旦 Bun for Windows 通過了 Bun 測試套件的 95% ,Bun 將發布支持 Windows 的 Bun 1.1 版本。

    JavaScript 運行時越來越多優秀的選手加入對局,在很久以前以前僅限于客戶端的 JavaScript,終于可在服務端大展身手。然而隨著眾多的運行時發布,相互之間的兼容性難以保持平衡。

    對此 Cloudflare 與 Vercel、Shopify 將與 Node.js 和 Deno 的個人核心貢獻者合作,共同成立一個新的社區小組,命名為 WinterCG,該小組匯集了三個最大的 JavaScript 環境,為開發人員提供了靈活性和選擇,同時創建邊緣計算的未來標準。

    為了能夠更直觀的查看不同運行時的兼容性表現,Vercel 工程師 Tom Lienard 宣布與 Matt Kane、UnJS、CanadaHonk 和 Open Web Docs 人員合作推出一個新的開源項目 Runtime Compat,用于顯示不同 JavaScript 運行時之間的 API 兼容性,下面讓我們一起看一下 Runtime Compat 有什么好玩的有趣的功能吧。

    項目介紹

    在不同的 JavaScript 運行時中顯示 API 的兼容性。數據是使用 mdn-bcd-collector 中的運行時測試自動生成的,并以 MDN 瀏覽器兼容性數據格式發布。

    警告:當前數據并非 100% 準確,而是自動生成的。

    關于數據

    數據是使用 mdn-bcd-collector 項目中的測試生成的。這些最初是為 MDN 的 browser-compat-data 創建的,該數據支持 MDN Web Docs 和 CanIUse 等網站。這些測試旨在在瀏覽器環境中運行,因此我們使用了一個稍微修改過的測試工具版本,以便讓它們能夠在非瀏覽器運行時執行。

    每個運行時代碼略有不同,因為它們被設計成以不同方式調用。廣義上分為兩組:可直接從 CLI 運行的和通過 HTTP 請求調用的其他類型。對于后者,我們使用項目自己的開發服務器,然后使用 start-server-and-test 來啟動服務器并請求運行測試文件的函數。

    每個運行時目錄中都會生成一個 data.json 文件,其中包含了測試結果。如果要檢查特定測試失敗原因,請首先檢查此文件內容,因為它包含了每個測試的代碼和錯誤消息。

    然后另一個腳本處理這些文件,并將其與 browser-compat-data 項目關于每個 API 的元數據結合起來,并將數據作為 JSON 文件寫入 runtime-compat-data 目錄,然后發布到 npm 作為 runtime-compat-data 模塊。

    可以在本地運行這些測試,但實際數據生成過程是通過 GitHub Actions 運行完成,如果有任何更改,則會打開 PR 。

    局限性

    實際測試是設計在瀏覽器中運行的,因此可能存在不一致性。出于同樣的原因,它們也不會測試任何 WinterCG 特定功能。

    通常使用托管服務來運行幾個支持的運行時。這些通過開發庫或服務器在本地進行測試,可能與生產環境有所不同。

    一些運行時可能會定義特定的 API 對象或方法,但作為一個存根或空操作而不是實際功能。在大多數情況下,這將被顯示為受支持的。通常這些功能在瀏覽器環境之外沒有意義,但已經實現以允許代碼跨平臺運行。

    這些測試是為瀏覽器創建的,因此它們對其環境做出了一些假設。我們盡量解決盡可能多的問題,但仍然存在錯誤負面影響。例如,大多數請求和 URL 測試都假定它們可以創建相對 URL。由于設計原因,在大多數非瀏覽器運行時中這種方式無法工作,因為沒有 location.href 供其相對參照。目前這意味著很多這些測試報告為失敗,即使運行時支持其中的大部分功能。

    測試僅針對每個運行時的最新穩定版本進行,因此數據僅顯示該功能當前是否受支持。在大多數情況下,這些運行時會定期更新,所以這不應該是一個問題。唯一的例外是 Node.js,它經常使用舊版本運行。對于這種情況,您可能希望將數據與 MDN 文檔進行比較,其中包含有關舊版本 Node 的支持詳細信息。

    相關鏈接

    在線查看:https://runtime-compat.unjs.io

    項目地址:https://github.com/unjs/runtime-compat

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有