曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

打包工具Rolldown 1.0.0-beta.1發(fā)布

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

Rolldown 1.0.0-beta.1 發(fā)布了。

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

作為一款現(xiàn)代化的打包工具,Rolldown 為開發(fā)者提供了更高效、便捷的開發(fā)體驗(yàn)。

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

下文來自Rolldown 官方博客:《我們?yōu)槭裁葱枰虬鳎俊?/strong>

01. 打包有用論

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

但 Rolldown 團(tuán)隊(duì)認(rèn)為,這種方案只適用小型應(yīng)用,對于關(guān)注用戶體驗(yàn)的性能敏感型應(yīng)用,打包器仍不可或缺。

現(xiàn)代前端開發(fā)中,試圖跳過構(gòu)建步驟仍然不切實(shí)際。即使在完善的非打包部署模型中,構(gòu)建步驟通常也無法避免。

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

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

使用現(xiàn)代 JS 特性,比如 ES6+、TS 或 JSX。

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

使用依賴構(gòu)建的庫或框架。

發(fā)布源碼未打包的 npm 依賴,導(dǎo)致請求過多。

JS 打包無用論的主要論點(diǎn)是構(gòu)建時(shí)增加了復(fù)雜性,減慢了開發(fā)反饋循環(huán)。

02. 三大優(yōu)化

本質(zhì)上,打包器的存在是因?yàn)?Web 應(yīng)用的獨(dú)特限制:它們需要通過網(wǎng)絡(luò)按需交付。

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

1、減少網(wǎng)絡(luò)請求和 waterfall(瀑布量)。 2、減少通過網(wǎng)絡(luò)發(fā)送的總字節(jié)數(shù)。 3、提高 JS 的執(zhí)行性能。

03. 減少網(wǎng)絡(luò)請求

首先,使用 HTTP/2 協(xié)議并不意味著可以不再關(guān)心請求數(shù)量。

盡管 HTTP/2 理論上支持無限多路復(fù)用,但瀏覽器/服務(wù)器對每個(gè)連接最大并發(fā)流數(shù)量的默認(rèn)限制大約為 100。

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

即使使用 HTTP/2,包含數(shù)千個(gè)未打包模塊的應(yīng)用仍然會導(dǎo)致嚴(yán)重的網(wǎng)絡(luò)瓶頸。

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

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

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

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

本質(zhì)上,打包將組合模塊圖的工作移到構(gòu)建時(shí),而不是為每個(gè)訪問者帶來運(yùn)行時(shí)成本。這使得大型應(yīng)用在網(wǎng)絡(luò)較差時(shí),初次訪問的加載速度也能顯著加快。

3.1 緩存策略的權(quán)衡

打包無用論的另一個(gè)觀點(diǎn)是,非打包方案允許單獨(dú)緩存每個(gè)模塊,減少更新應(yīng)用時(shí)緩存失效的數(shù)量。

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

次優(yōu)的打包配置可能會導(dǎo)致級聯(lián)塊哈希驗(yàn)證,導(dǎo)致用戶在應(yīng)用更新時(shí)必須重新下載應(yīng)用的主要內(nèi)容。

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

Vite / Rolldown 計(jì)劃會提供改進(jìn)的、緩存更友好的默認(rèn)分塊策略。

04. 減少總字節(jié)數(shù)

打包還可以減少網(wǎng)絡(luò)發(fā)送的 JS 體積。

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

其次,tree-shaking(消除死代碼)是一種能且僅能通過靜態(tài)分析源碼來執(zhí)行的構(gòu)建時(shí)優(yōu)化。

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

最后,在打包代碼上執(zhí)行壓縮和 gzip 時(shí),比單個(gè)模塊效率更高。

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

05. 提高 JS 執(zhí)行性能

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

發(fā)送更少的 JS 代碼不僅可以節(jié)省帶寬,還意味著在瀏覽器中編譯和執(zhí)行的 JS 更少,應(yīng)用的啟動(dòng)時(shí)間更短。

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

高潮總結(jié)

由于 Web 應(yīng)用依賴于網(wǎng)絡(luò)交付,前端目前仍然需要一個(gè)高性能的打包器。

打包器起碼有三大方案來優(yōu)化性能,Rolldown 以 Vite 用戶為起點(diǎn),可以提供更加一致的打包體驗(yàn),同時(shí)性能又比肩 esbuild + rollup。

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

閱讀更多

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

Vue誕生10年,創(chuàng)始人尤雨溪推動(dòng)“銹化”——通過Rust提升Web基礎(chǔ)設(shè)施性能

相關(guān)來源

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    525

    瀏覽量

    54399
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    233

    瀏覽量

    6909

原文標(biāo)題:這款“銹化”的開源JS打包工具發(fā)布1.0 Beta——性能強(qiáng)勁、尤雨溪主導(dǎo)

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    中興通訊亮相2025對外承包工程行業(yè)發(fā)展大會

    近日,“2025對外承包工程行業(yè)發(fā)展大會暨中國對外承包工程行業(yè)發(fā)展論壇”在京舉辦,中興通訊高級副總裁孫方平受邀出席并發(fā)表了題為“數(shù)字筑基,生態(tài)共榮”的主旨演講,深入探討了數(shù)智化技術(shù)如何賦能海外傳統(tǒng)基礎(chǔ)設(shè)施建設(shè),推動(dòng)對外承包工程行
    的頭像 發(fā)表于 04-30 14:33 ?236次閱讀

    Linux文件系統(tǒng)打包及鏡像制作,觸覺智能RK3562開發(fā)板演示

    高達(dá)2.0GHz;內(nèi)置獨(dú)立1Tops算力NPU,可應(yīng)用于物聯(lián)網(wǎng)網(wǎng)關(guān)、平板電腦、智能家居、教育電子、工業(yè)顯示與控制等行業(yè)。工具獲取本文所介紹的方法需要使用到Linux
    的頭像 發(fā)表于 04-28 16:45 ?168次閱讀
    Linux文件系統(tǒng)<b class='flag-5'>打包</b>及鏡像制作,觸覺智能RK3562開發(fā)板演示

    先楫半導(dǎo)體HPM_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!

    先楫半導(dǎo)體HPM_SDK v1.7.0發(fā)布!這些更新你值得關(guān)注!
    的頭像 發(fā)表于 02-08 13:42 ?476次閱讀
    先楫半導(dǎo)體HPM_SDK v1.7.0<b class='flag-5'>發(fā)布</b>!這些更新你值得關(guān)注!

    Android16 Beta 1來襲,谷歌Pixel 6用戶搶先體驗(yàn)

    提供的Android 16路線圖,Beta 1版本于2025年1發(fā)布,Beta 2、Beta
    的頭像 發(fā)表于 01-24 10:36 ?818次閱讀

    對標(biāo)OpenAI o1,DeepSeek-R1發(fā)布

    今天,我們正式發(fā)布 DeepSeek-R1,并同步開源模型權(quán)重。 DeepSeek-R1 遵循 MIT License,允許用戶通過蒸餾技術(shù)借助 R1 訓(xùn)練其他模型。 DeepSeek
    的頭像 發(fā)表于 01-22 13:46 ?1233次閱讀
    對標(biāo)OpenAI o<b class='flag-5'>1</b>,DeepSeek-R<b class='flag-5'>1</b><b class='flag-5'>發(fā)布</b>

    谷歌計(jì)劃12月發(fā)布Gemini 2.0模型

    近日,有消息稱谷歌計(jì)劃在12月發(fā)布其下一代人工智能模型——Gemini 2.0。這一消息引發(fā)了業(yè)界的廣泛關(guān)注,因?yàn)楣雀柙谌斯ぶ悄茴I(lǐng)域一直保持著領(lǐng)先地位,而Gemini系列模型更是其重要的產(chǎn)品之一。
    的頭像 發(fā)表于 10-29 11:02 ?970次閱讀

    蘋果推送iOS 18.2 Beta 1,Siri接入ChatGPT技術(shù)

    10月24日最新報(bào)道,蘋果公司于今日向開發(fā)人員發(fā)布了iOS 18.2 Beta 1版本,此版本專為支持Apple Intelligence的設(shè)備設(shè)計(jì),涵蓋iPhone 15 Pro系列及iPhone
    的頭像 發(fā)表于 10-24 14:24 ?1020次閱讀

    歡創(chuàng)播報(bào) 華為發(fā)布會撞期蘋果iPhone16發(fā)布

    1 華為發(fā)布會撞期蘋果iPhone16發(fā)布會 9月2日,華為宣布,其備受期待的品牌盛典及鴻蒙智行新品發(fā)布會將于9月10日舉行,屆時(shí)將展示華為的最新科技創(chuàng)新成果。華為消費(fèi)者業(yè)務(wù)CEO余承
    的頭像 發(fā)表于 09-05 11:33 ?698次閱讀
    歡創(chuàng)播報(bào)  華為<b class='flag-5'>發(fā)布</b>會撞期蘋果iPhone16<b class='flag-5'>發(fā)布</b>會

    求助,關(guān)于open-loop反饋參數(shù)beta問題求解

    。 在closeloop中,beta是feedback factor,等于R1/(R1+Rf),是一個(gè)常數(shù),請問在open loop中 1/be
    發(fā)表于 08-14 06:24

    AMD的銳龍9000系列處理器將延后至8月發(fā)布

    國際媒體傳來消息,AMD公司已正式向其全球合作伙伴宣布,原計(jì)劃于7月31日面世的銳龍9000系列處理器將延后至8月發(fā)布。這一調(diào)整源自于AMD在最終品質(zhì)檢驗(yàn)階段發(fā)現(xiàn)的首批生產(chǎn)批次未能全面符合其嚴(yán)苛的質(zhì)量標(biāo)準(zhǔn)。
    的頭像 發(fā)表于 07-25 14:24 ?906次閱讀

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

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

    蘋果發(fā)布macOS 14.6 Beta 2

    。此次Beta 2的內(nèi)部版本號為23G5061b,其緊隨前一版本發(fā)布僅兩周之后,如此緊湊的更新周期,無疑是在為macOS 14.x系列的最終完善以及向全新macOS 15 Sequoia系統(tǒng)的平穩(wěn)過渡按下加速鍵。
    的頭像 發(fā)表于 07-02 11:10 ?1565次閱讀

    HarmonyOS NEXT Developer Beta1最新術(shù)語表

    A abc文件 方舟字節(jié)碼(ArkCompiler Bytecode)文件,是ArkCompiler的編譯工具鏈以源代碼作為輸入編譯生成的產(chǎn)物,其文件后綴名為.abc。在發(fā)布態(tài),abc文件會被打包
    發(fā)表于 06-27 16:16

    HarmonyOS NEXT Developer Beta1中的Kit

    Kit工具箱的形式羅。 本文根據(jù)HarmonyOS NEXT Developer Beta1官方公開的開發(fā)文檔整理而成。
    發(fā)表于 06-26 10:47

    蘋果首款折疊屏MacBook或提前至2026年發(fā)布

    天風(fēng)國際分析師郭明錤近日發(fā)布關(guān)于蘋果首款折疊屏MacBook的最新調(diào)查報(bào)告。根據(jù)他的最新預(yù)測,這款備受期待的MacBook預(yù)計(jì)將在2026年發(fā)布,比之前的預(yù)測提前了一年。
    的頭像 發(fā)表于 05-27 09:48 ?627次閱讀