哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

完善資料讓更多小伙伴認識你,還能領(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ā)體驗。

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

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

01. 打包有用論

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

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

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

舉個栗子,Rails 8 默認的基于導(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 打包無用論的主要論點是構(gòu)建時增加了復(fù)雜性,減慢了開發(fā)反饋循環(huán)。

02. 三大優(yōu)化

本質(zhì)上,打包器的存在是因為 Web 應(yīng)用的獨特限制:它們需要通過網(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ù)器對每個連接最大并發(fā)流數(shù)量的默認限制大約為 100。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

高潮總結(jié)

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

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

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

閱讀更多

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

Vue誕生10年,創(chuà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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    526

    瀏覽量

    56527
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    241

    瀏覽量

    7649

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    索尼電影感直播遠程調(diào)試服務(wù)工具V1.1.0版本升級

    索尼“電影感直播遠程調(diào)試”服務(wù)工具(即“RASL”)自今年1發(fā)布以來,受到直播服務(wù)機構(gòu)的廣泛關(guān)注,紛紛試用、采買。通過該工具,工程師可遠程完成相機核心參數(shù)的精細調(diào)節(jié)、畫面實時對比、參
    的頭像 發(fā)表于 04-07 11:34 ?342次閱讀

    Nordic nRF Connect SDK裸機選項v1.0.0版本的亮點

    我們近期發(fā)布了nRF Connect SDK裸機選項的新版本(v1.0.0)。本次更新帶來了令人興奮的新功能和改進,希望您會喜歡。
    的頭像 發(fā)表于 01-16 11:18 ?1549次閱讀

    NVIDIA在CES 2026發(fā)布全新開放模型、數(shù)據(jù)和工具

    為擴展開放模型生態(tài),NVIDIA 發(fā)布全新開放模型、數(shù)據(jù)和工具,推動各行業(yè) AI 技術(shù)的發(fā)展。
    的頭像 發(fā)表于 01-09 10:42 ?733次閱讀

    重磅更新 | 先楫半導(dǎo)體HPM_APPS v1.10.1發(fā)布

    重磅更新 | 先楫半導(dǎo)體HPM_APPS v1.10.1發(fā)布
    的頭像 發(fā)表于 12-26 08:33 ?1370次閱讀
    重磅更新 | 先楫半導(dǎo)體HPM_APPS v1.10.1<b class='flag-5'>發(fā)布</b>

    宇樹科技上新,首款輪式機器人G1-D發(fā)布

    11月13日,宇樹科技在官網(wǎng)放出了一套人形機器人數(shù)彩訓(xùn)練全棧解決方案。該方案基于一款輪式機器人G1-D,由高性能人形機器人本體、系統(tǒng)化的數(shù)據(jù)采集工具和全面的模型訓(xùn)練及推理工具組成。相比智元機器人精靈G
    的頭像 發(fā)表于 11-13 14:39 ?1.4w次閱讀
    宇樹科技上新,首款輪式機器人G<b class='flag-5'>1</b>-D<b class='flag-5'>發(fā)布</b>

    全新升級 | 匠芯創(chuàng)AiUIBuilder V2.0.0發(fā)布

    近日,匠芯創(chuàng)自主研發(fā)的GUI開發(fā)工具AiUIBuilderV2.0.0發(fā)布。作為一款基于LVGL的UI設(shè)計工具,AiUIBuilder致力于通過拖拽式操作,加速基于匠芯創(chuàng)嵌入式平臺的圖形應(yīng)用開發(fā)
    的頭像 發(fā)表于 10-29 10:03 ?1051次閱讀
    全新升級 | 匠芯創(chuàng)AiUIBuilder V2.0.0<b class='flag-5'>發(fā)布</b>

    G2發(fā)布最新報告,Splashtop 榮膺多區(qū)域領(lǐng)導(dǎo)者,IT 遠程解決方案獲全球認可

    近日,全球權(quán)威軟件評測平臺G2發(fā)布了2025年秋季報告,Splashtop在端點管理、補丁管理、遠程支持和遠程桌面類別中表現(xiàn)亮眼,榮獲多項榮譽。憑借在歐洲、中東和非洲(EMEA)、歐洲、英國和加
    的頭像 發(fā)表于 10-20 17:02 ?1325次閱讀
    G2<b class='flag-5'>發(fā)布</b>最新報告,Splashtop 榮膺多區(qū)域領(lǐng)導(dǎo)者,IT 遠程解決方案獲全球認可

    scons使用dist生成的工程缺少文件怎么解決?

    env工具:env_released_1.3.5 使用scons —dist指令打包工程,打開生成的工程,提示缺少文件路徑 以下內(nèi)容為評論
    發(fā)表于 10-09 06:02

    大家用的OTA升級打包工具都是用什么制作的,能否拿到QBoot的打包器源碼拿來開發(fā)呢?

    大家用的OTA升級打包工具都是用什么制作的,能否拿到QBoot的打包器源碼拿來開發(fā)呢?
    發(fā)表于 09-25 06:16

    聊聊 Webpack 那些安全事兒:打包風險與防護小技巧

    Webpack 作為前端工程化的核心工具,幾乎成為現(xiàn)代 Web 應(yīng)用打包的標配。它通過模塊合并、代碼壓縮、依賴管理等功能提升開發(fā)效率,但也因配置復(fù)雜、代碼混淆等特性,潛藏著諸多安全風險。本文結(jié)合實戰(zhàn)
    的頭像 發(fā)表于 09-02 10:22 ?895次閱讀
    聊聊 Webpack 那些安全事兒:<b class='flag-5'>打包</b>風險與防護小技巧

    針對“您的應(yīng)用使用了HarmonyOS beta版本的API”的解決方法##HarmonyOS應(yīng)用上架##

    的內(nèi)容,后來發(fā)現(xiàn),是開發(fā)工具中包含了beta字樣,如圖所示: ? 于是我去官網(wǎng)重新下載了一個開發(fā)工具,特意降低了一下版本,從5.0.5降低到了5.0.4 ? 重新打包編譯提交審核,順利
    發(fā)表于 06-30 17:30

    PCBA包工包料:用專業(yè)力量為企業(yè)生產(chǎn)“減負增效”

    一站式PCBA加工廠家今天為大家講講什么是PCBA包工包料服務(wù)?PCBA包工包料服務(wù)的優(yōu)勢。隨著電子制造行業(yè)的快速發(fā)展,越來越多的企業(yè)選擇PCBA包工包料服務(wù),以降低成本、提高生產(chǎn)效率,專注于
    的頭像 發(fā)表于 05-26 09:34 ?726次閱讀

    雷軍官宣小米發(fā)布會:首款SUV將亮相 雷軍官宣小米YU7發(fā)布時間

    雷軍官宣小米YU7發(fā)布時間在22號,雷軍發(fā)文稱:小米戰(zhàn)略新品發(fā)布會,定在5月22日晚7點。 這次重磅新品特別多:手機SoC芯片小米玄戒o1,小米15SPro,小米平板7 Ultra,小米首款SUV
    的頭像 發(fā)表于 05-19 16:42 ?1600次閱讀

    重磅更新 | 先楫半導(dǎo)體HPM_APPS v1.9.0發(fā)布

    重磅更新 | 先楫半導(dǎo)體HPM_APPS v1.9.0發(fā)布
    的頭像 發(fā)表于 05-13 11:29 ?2027次閱讀
    重磅更新 | 先楫半導(dǎo)體HPM_APPS v1.9.0<b class='flag-5'>發(fā)布</b>

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

    近日,“2025對外承包工程行業(yè)發(fā)展大會暨中國對外承包工程行業(yè)發(fā)展論壇”在京舉辦,中興通訊高級副總裁孫方平受邀出席并發(fā)表了題為“數(shù)字筑基,生態(tài)共榮”的主旨演講,深入探討了數(shù)智化技術(shù)如何賦能海外傳統(tǒng)基礎(chǔ)設(shè)施建設(shè),推動對外承包工程行
    的頭像 發(fā)表于 04-30 14:33 ?1061次閱讀
    辉县市| 彝良县| 正蓝旗| 政和县| 东辽县| 榆社县| 金塔县| 乐业县| 桐城市| 山西省| 道孚县| 长沙市| 商都县| 镇康县| 无为县| 吴旗县| 莱阳市| 桃园县| 柘城县| 甘德县| 鄄城县| 抚宁县| 梁山县| 布尔津县| 青海省| 原阳县| 阜新| 巢湖市| 金阳县| 铜陵市| 凤山县| 麻阳| 全椒县| 琼结县| 博野县| 郓城县| 黎平县| 津南区| 天台县| 谷城县| 清涧县|