色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

打包工具Rolldown 1.0.0-beta.1發布

OSC開源社區 ? 來源:OSC開源社區 ? 2024-12-31 10:00 ? 次閱讀

Rolldown 1.0.0-beta.1 發布了。

Rolldown 是使用 Rust 開發的 Rollup 替代品,它提供與 Rollup 兼容的應用程序接口和插件接口,但在功能范圍上更類似于 esbuild。

作為一款現代化的打包工具,Rolldown 為開發者提供了更高效、便捷的開發體驗。

Rolldown 是尤雨溪公司投資的 Vite 基建開源項目,采用 Rust 從零開始構建了一個 API 與 Rollup 兼容的 JavaScript 打包器。

下文來自Rolldown 官方博客:《我們為什么需要打包器?》

01. 打包有用論

現代瀏覽器普遍支持原生 ESM 模塊和 HTTP/2,所以部分開發者提倡即使在生產環境中,也采用非打包方案(unbundled)來發布 Web 應用。

但 Rolldown 團隊認為,這種方案只適用小型應用,對于關注用戶體驗的性能敏感型應用,打包器仍不可或缺。

現代前端開發中,試圖跳過構建步驟仍然不切實際。即使在完善的非打包部署模型中,構建步驟通常也無法避免。

舉個栗子,Rails 8 默認的基于導入映射方案:所有 JS 資源仍需要構建,以便對資源指紋識別,并生成導入映射和模塊預加載指令。這只是通過 importmap-rails 來“曲線救國”,從而不直接使用 JS 打包器。

此外,對于下列需求,非打包方案存在缺陷:

使用現代 JS 特性,比如 ES6+、TS 或 JSX。

使用打包器專屬的優化,比如 tree-shaking(樹搖)、代碼分割或壓縮。

使用依賴構建的庫或框架。

發布源碼未打包的 npm 依賴,導致請求過多。

JS 打包無用論的主要論點是構建時增加了復雜性,減慢了開發反饋循環。

02. 三大優化

本質上,打包器的存在是因為 Web 應用的獨特限制:它們需要通過網絡按需交付。

打包器可以通過三大方案來提高 Web 應用的性能:

1、減少網絡請求和 waterfall(瀑布量)。 2、減少通過網絡發送的總字節數。 3、提高 JS 的執行性能。

03. 減少網絡請求

首先,使用 HTTP/2 協議并不意味著可以不再關心請求數量。

盡管 HTTP/2 理論上支持無限多路復用,但瀏覽器/服務器對每個連接最大并發流數量的默認限制大約為 100。

每個網絡請求在服務器和客戶端上都有固定開銷,比如請求頭處理、TLS 加密、多路復用等。更多請求意味著更多服務器負載,而實際并發性受限于服務器提供模塊文件的速度。

即使使用 HTTP/2,包含數千個未打包模塊的應用仍然會導致嚴重的網絡瓶頸。

深度導入鏈還會導致網絡瀑布(waterfall),即瀏覽器需要多次網絡往返才能獲取整個模塊圖。

這可以在通過 modulepreload 指令來稍微緩解,但是生成這些指令需要工具支持,并且在標簽中使用數千個 modulepreload 指令會導致 HTML 本身膨脹,這又是另一個性能問題。

打包可以通過將數千個模塊組合成服務器和瀏覽器都可以輕松處理的最佳數量的 chunk(組件塊),減少此類開銷。

打包還可以拍平導入鏈深度來減少 waterfall,并且可以提供生成 modulepreload 指令所需的數據。

本質上,打包將組合模塊圖的工作移到構建時,而不是為每個訪問者帶來運行時成本。這使得大型應用在網絡較差時,初次訪問的加載速度也能顯著加快。

3.1 緩存策略的權衡

打包無用論的另一個觀點是,非打包方案允許單獨緩存每個模塊,減少更新應用時緩存失效的數量。

然而,如上所述,這樣做的代價是降低了初始加載速度。

次優的打包配置可能會導致級聯塊哈希驗證,導致用戶在應用更新時必須重新下載應用的主要內容。

但這問題不大:打包器還可以利用導入映射和高級分塊控制,限制哈希無效并提高緩存命中率。

Vite / Rolldown 計劃會提供改進的、緩存更友好的默認分塊策略。

04. 減少總字節數

打包還可以減少網絡發送的 JS 體積。

首先,打包可以將多個模塊提升到同一作用域,移除其中所有 import / export 語句。

其次,tree-shaking(消除死代碼)是一種能且僅能通過靜態分析源碼來執行的構建時優化。

原生 ESM 會及早加載和執行所有內容,因此即使你只使用大模塊的單個導出,也必須下載并執行整個模塊。智能打包器可以從最終打包中移除未使用的 export,節省大量字節。

最后,在打包代碼上執行壓縮和 gzip 時,比單個模塊效率更高。

綜上所述,打包既可以減少用戶下載的代碼,也可以減少服務器使用的帶寬。

05. 提高 JS 執行性能

JS 是一種解釋型語言,現代 JS 引擎通常采用先進的 JIT 編譯來提升運行速度。然而,解析和編譯 JS 的成本也不低。

發送更少的 JS 代碼不僅可以節省帶寬,還意味著在瀏覽器中編譯和執行的 JS 更少,應用的啟動時間更短。

一些打包器/壓縮器還可以執行諸如常量折疊/AOT(及早執行)之類的優化,使打包代碼比手寫的源碼更高效。

高潮總結

由于 Web 應用依賴于網絡交付,前端目前仍然需要一個高性能的打包器。

打包器起碼有三大方案來優化性能,Rolldown 以 Vite 用戶為起點,可以提供更加一致的打包體驗,同時性能又比肩 esbuild + rollup。

來源:尤大為什么要投資打包器,Rolldown 公測版發布

閱讀更多

前端開始“銹化”?Vue團隊開源JS打包工具:基于Rust、速度極快、尤雨溪主導 最受歡迎前端框架——Vue創始人尤雨溪成立新公司VoidZero:聲稱打造下一代JavaScript工具鏈、已融資3200萬

Vue誕生10年,創始人尤雨溪推動“銹化”——通過Rust提升Web基礎設施性能

相關來源

https://x.com/rolldown_rs/status/1871953492979617976 https://github.com/rolldown/rolldown/releases/tag/v1.0.0-beta.1 https://rolldown.rs/guide/in-depth/why-bundlers https://mp.weixin.qq.com/s/okYoOQXN9Emo1kjfNXqpnQ https://mp.weixin.qq.com/s/i3MdBCwCBCG2Wue0ud1h7w

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • javascript
    +關注

    關注

    0

    文章

    519

    瀏覽量

    53879
  • Rust
    +關注

    關注

    1

    文章

    229

    瀏覽量

    6614

原文標題:這款“銹化”的開源JS打包工具發布1.0 Beta——性能強勁、尤雨溪主導

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    HPMicro Arduino支持包v0.1.0發布,適配功能揭曉!

    HPMicro Arduino支持包v0.1.0發布,適配功能揭曉!
    的頭像 發表于 07-11 08:18 ?525次閱讀
    HPMicro Arduino支持包v0.1.0<b class='flag-5'>發布</b>,適配功能揭曉!

    攜手OpenHarmony,先楫半導體HPMicro ohos v1.0.0 正式發布

    各位關注先楫的小伙伴們,基于OpenHarmony4.0-Release版本和hpm_sdkv1.4.0版本的HPMicroohosv1.0.0正式發布了。
    的頭像 發表于 04-03 08:16 ?1032次閱讀
    攜手OpenHarmony,先楫半導體HPMicro ohos v<b class='flag-5'>1.0.0</b> 正式<b class='flag-5'>發布</b>

    先楫半導體攜手OpenHarmony正式發布HPMicro ohos v1.0.0

    各位關注先楫的小伙伴們,基于OpenHarmony 4.0-Release版本和hpm_sdk v1.4.0 版本的 HPMicro ohos v1.0.0 正式發布了。
    的頭像 發表于 04-02 10:45 ?1166次閱讀
    先楫半導體攜手OpenHarmony正式<b class='flag-5'>發布</b>HPMicro ohos v<b class='flag-5'>1.0.0</b>

    Vue團隊發布Rust編寫JavaScript打包工具Rolldown

    據悉,Rolldown作為Rollup.js的替代品,由字節跳動的OXc工具集支持,具有與Rollup兼容的APIs以及插件接口。該產品預計將成為未來Vite項目的首選打包工具
    的頭像 發表于 03-11 09:58 ?776次閱讀

    RZ/G柔性軟件包v2.0.1發布說明

    電子發燒友網站提供《RZ/G柔性軟件包v2.0.1發布說明.pdf》資料免費下載
    發表于 02-21 10:48 ?0次下載
    RZ/G柔性軟件包v2.0.1<b class='flag-5'>發布</b>說明

    16位單片機RL78系列Rev.1.20發布說明

    電子發燒友網站提供《16位單片機RL78系列Rev.1.20發布說明.pdf》資料免費下載
    發表于 02-19 10:15 ?0次下載
    16位單片機RL78系列Rev.1.20<b class='flag-5'>發布</b>說明

    AI導航器V1.0.0 發布說明

    電子發燒友網站提供《AI導航器V1.0.0 發布說明.pdf》資料免費下載
    發表于 02-19 09:47 ?0次下載
    AI導航器V<b class='flag-5'>1.0.0</b> <b class='flag-5'>發布</b>說明

    QE for Motor V1.3.0發布說明

    電子發燒友網站提供《QE for Motor V1.3.0發布說明.pdf》資料免費下載
    發表于 02-19 09:35 ?0次下載
    QE for Motor V1.3.0<b class='flag-5'>發布</b>說明

    RZ/V2L DRP-AI支持包版本.7.41發布說明

    電子發燒友網站提供《RZ/V2L DRP-AI支持包版本.7.41發布說明.pdf》資料免費下載
    發表于 02-01 10:07 ?0次下載
    RZ/V2L DRP-AI支持包版本.7.41<b class='flag-5'>發布</b>說明

    RZ/V多操作系統包V1.12發布說明

    電子發燒友網站提供《RZ/V多操作系統包V1.12發布說明.pdf》資料免費下載
    發表于 02-01 09:47 ?0次下載
    RZ/V多操作系統包V1.12<b class='flag-5'>發布</b>說明

    嵌入式目標V6.06.00發布說明

    電子發燒友網站提供《嵌入式目標V6.06.00發布說明.pdf》資料免費下載
    發表于 02-01 09:26 ?0次下載
    嵌入式目標V6.06.00<b class='flag-5'>發布</b>說明

    e2 studio 2024-01發布說明

    電子發燒友網站提供《e2 studio 2024-01發布說明.pdf》資料免費下載
    發表于 01-30 09:47 ?1次下載
    e2 studio 2024-01<b class='flag-5'>發布</b>說明

    CS+適用于CC V8.11.00發布說明

    電子發燒友網站提供《CS+適用于CC V8.11.00發布說明.pdf》資料免費下載
    發表于 01-29 11:46 ?0次下載
    CS+適用于CC V8.11.00<b class='flag-5'>發布</b>說明

    電容式觸摸的QE V3.3.0發布說明

    電子發燒友網站提供《電容式觸摸的QE V3.3.0發布說明.pdf》資料免費下載
    發表于 01-29 10:58 ?0次下載
    電容式觸摸的QE V3.3.0<b class='flag-5'>發布</b>說明

    AMD CES 2024發布會時間定檔1月8日

    據外媒報道,全球領先的芯片制造商AMD正式宣布,將于美國東部標準時間1月8日上午10點(北京時間1月8日23:00)舉行CES 2024發布會。這一消息引起了業界和消費者的廣泛關注。
    的頭像 發表于 01-08 15:05 ?1793次閱讀
    主站蜘蛛池模板: 色吧.com| 一区二区三区国产亚洲网站| 99国产这里只有精品视频| 嫩草影院在线观看精品视频| 99热精品在线av播放| 四虎国产精品永久一区高清| 国产伦精品一区二区三区免费| 亚洲AV无码久久流水呻蜜桃久色 | 国产精品亚洲精品日韩电影| 亚洲欧美日韩精品久久奇米色影视| 乱xxxjapanese黑人| 俄罗斯孩交精品| 一本之道高清在线观看一区| 啪啪羞羞GIF男女0OXX动态图| 国产精品亚洲高清一区二区| 777久久人妻少妇嫩草AV蜜桃| 色在线视频亚洲欧美| 久久亚洲黄色| 国产精品久久久久久久久久影院 | 操中国老太太| 亚洲午夜性春猛交XXXX| 欧洲videosdesrxotv| 国产一区亚洲| yellow免费观看直播| 亚洲无遮挡| 试看做受120秒免费午夜剧场| 久久免费精彩视频| 国产精品线路一线路二| Chinesetube国产中文| 一本道mw高清码二区三区| 十二月综合缴缴情| 免费在线看视频| 娇妻中日久久持久久| 高h 大尺度纯肉 np快穿| 13一18TV处流血TV| 亚洲人成电影网站色2017| 肉动漫无码无删减在线观看| 蜜柚在线观看免费高清官网视频 | 久久re视频精品538在线| 高清国产一区| a在线视频免费观看|