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

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

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

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

ViteConf 2023:Vite即將Rust化挑戰(zhàn)

jf_wN0SrCdH ? 來源:浮之靜 ? 作者:lencx ? 2023-10-07 10:28 ? 次閱讀

ViteConf 干貨滿滿,尤大的分享中最值得關(guān)注的就要數(shù) Rolldown 了,它為 Vite 現(xiàn)有痛點提供了新的解決方案。

Vite

Vite[2] 是支撐著全球增長最快的前端生態(tài)系統(tǒng)的下一代構(gòu)建工具。

npm 每周下載量:7,200,000+

GitHub Stars:60,000+

2171c40e-6455-11ee-939d-92fbcf53809c.png

218425d6-6455-11ee-939d-92fbcf53809c.png

Vite 生態(tài)

Vite 正在迅速崛起為一個共享的基礎(chǔ)平臺,吸引著越來越多的項目在其基礎(chǔ)上構(gòu)建和發(fā)展。令人興奮的是,這些項目不僅僅滿足于基礎(chǔ)應(yīng)用,而是在各自的領(lǐng)域中進(jìn)行著前所未有的創(chuàng)新。

Vite 妥善平衡了低級別復(fù)雜性的抽象和高級用戶及框架的靈活性。這不僅降低了入門門檻,提供了友好的開發(fā)體驗,同時也確保了對于高級應(yīng)用和多變需求的充分支持。

Storybook v7 提供一流的 Vite 支持:預(yù)先捆綁以提高速度、零配置設(shè)置、無需 Webpack 以及更小的安裝大?。‵irst-class Vite support in Storybook[3])

Angular v16 使用 Vite 作為開發(fā)服務(wù)器(Angular v16 is here![4])

Preact[5] 在 6 月份將默認(rèn)工具切換為 Vite,推薦使用 create-vite 來快速開始一個項目

Redwood v6 完全構(gòu)建在 Vite 之上(RedwoodJS Vite Configuration[6])

Bun v0.7 開始支持 Vite(bun vite support[7])

VitePress[8] 靜態(tài)網(wǎng)站生成器

與 Remix[9] 合作,探索向 Vite 遷移,已取得重大進(jìn)展

...

Vite 痛點 & 挑戰(zhàn)

痛點

相對緩慢的生產(chǎn)構(gòu)建速度:目前仍使用 rollup 作為生產(chǎn)構(gòu)建,本地開發(fā)使用 esbuild 或 Bun

開發(fā)與生產(chǎn)環(huán)境之間的不一致:Vite 使用混合策略。開發(fā)使用 esbuild 預(yù)構(gòu)建,使用 Native ES 模塊提供源代碼;生產(chǎn)使用 Rollup 來捆綁所有資產(chǎn),CommonJS 在處理和轉(zhuǎn)換時有時會出現(xiàn)輕微的不一致,最終導(dǎo)致難以調(diào)試。

開發(fā)過程中存在未捆綁 ESM 的網(wǎng)絡(luò)開銷:如果開發(fā)者項目中包含大量未捆綁 ESM 時,網(wǎng)絡(luò)開銷會大幅影響初始頁面加載速度。

混亂的 SSR 外部問題

對代碼塊分割的有限控制:與 ES 構(gòu)建相比,雖然 Rollup 已經(jīng)提供了很大靈活性,但與 Webpack 的完全支持自定義相比,還是有些差距

缺乏首方模塊聯(lián)合(First-party Module Federation)支持:了解更多 Module Federation[10]

挑戰(zhàn)

大多數(shù)問題需要在打包工具(bundler)層面解決(Vite 內(nèi)部有兩個捆綁器:esbuild 和 Rollup)

esbuild(或 Bun)速度極快,但:

對構(gòu)建資源優(yōu)化的控制非常有限:比如控制塊的分割方式

插件 API 不夠靈活:比如當(dāng)嘗試將多個插件連接在一起以處理同一文件類型時

Rollup 成熟且靈活,但:

與原生打包工具相比仍然較慢

ESM/CJS 交互操作的處理可以改進(jìn)

兩個打包工具都無法完全替代對方,并且存在微妙的行為不一致性

Rolldown

尤大透露團(tuán)隊正在開發(fā) Rolldown,它是 Rollup 的 Rust 移植版。目的并不是為了取代現(xiàn)有的工具 esbuild 或 Rollup,只是為了更好地滿足一些特定需求,使 Vite 用戶受益。

專注點:在盡可能與 Rollup 兼容的前提下,重點關(guān)注性能

目標(biāo):在對終端用戶影響最小的前提下,在 Vite 中替換 esbuild 和 Rollup

它將為 Vite 提供:

顯著更快的生產(chǎn)構(gòu)建速度

更強(qiáng)的開發(fā)/生產(chǎn)一致性

更穩(wěn)健的 SSR 依賴處理

更多關(guān)于代碼塊分割的控制

當(dāng)然,這將是一項龐大的工作!

目前狀態(tài):初步的工作進(jìn)行中?。ㄓ媱澰谀甑浊伴_源)

核心貢獻(xiàn)者是前 rspack[11] 團(tuán)隊成員(rspack 是字節(jié)開源的一個基于 rust 實現(xiàn)的前端打包工具,對標(biāo) Webpack)

與 rspack 團(tuán)隊合作,在 OXC[12] 基礎(chǔ)上進(jìn)行建設(shè)(Oxc 是一套為 JavaScript 和 TypeScript 創(chuàng)建的高性能工具,基于 Rust 實現(xiàn)。它正在構(gòu)建一個解析器、linter、格式化程序、轉(zhuǎn)譯器、壓縮器、解析器……)

與 @lukastaegert[13](rollup 核心維護(hù)者) 合作以確保與 Rollup 的一致性

如果 Vite 對你的使用場景來說過于龐大,Rolldown 當(dāng)然也可以作為一個獨立的依賴項使用。它還可以提高 Vitest[14] 和 Nitro[15] 的性能。

Vite Roadmap

計劃將通過四個階段逐步完善和升級打包和構(gòu)建過程,最后將 Vite 的一部分功能通過 Rust 和 Rolldown 進(jìn)行重寫或優(yōu)化,以提高整體性能和提供更多的構(gòu)建模式。

階段 1:基礎(chǔ)打包

替換 esbuild 用于依賴預(yù)打包:CommonJS & 仿 ESM(faux-ESM)兼容性

階段 2:高級打包

與 Rollup 功能對齊:插件兼容性、Tree-shaking、高級代碼塊分割控制等

階段 3:內(nèi)置轉(zhuǎn)換

TypeScript

JSX

代碼壓縮(minification)

語法降級(syntax lowering)

階段 4:使用 Rust 重構(gòu) Vite

Rolldown 暴露插件容器作為 API

Vite 引入一個以 Rolldown 為依賴的 Rust 核心

使用 Rust 重構(gòu) Vite 內(nèi)部關(guān)鍵插件和 ssrLoadModule 轉(zhuǎn)換

提供與未捆綁 ESM(unbundled ESM)相對的全包模式(full-bundle mode)

Vite 版本日志

Vite 4.0 (2022.12)

升級到 Rollup 3(3.0.0 changelog[16])

最低 Node.js 要求:Rollup 現(xiàn)在至少需要 Node 14.18.0 來運行。

插件和 API 更改:許多插件上下文函數(shù)和插件鉤子已被移除或修改。

新特性:包括按塊調(diào)用 output.banner/footer/intro/outro 的函數(shù),插件可以訪問完整的塊圖表等。

構(gòu)建輸出:增加了關(guān)于動態(tài)導(dǎo)入在 CommonJS 輸出中的處理,允許控制動態(tài)導(dǎo)入在生成 CommonJS 輸出時是以 import(...) 還是包裝過的 require(...) 形式被輸出。

警告和棄用:一些之前被棄用的特性已被移除,而其他一些特性開始顯示棄用警告。

錯誤處理:改進(jìn)了Rollup 拋出的錯誤信息的清晰度和一致性。

性能優(yōu)化:避免在發(fā)出數(shù)千個資產(chǎn)時的性能問題。

就重大變更而言,這是一個小得多的主版本。目標(biāo)是為了最大化利用生態(tài),而推出的一個穩(wěn)定版。CI 確保與下游項目的兼容性,以便更改對最終用戶的影響盡可能小。

使用 SWC 支持的 React 插件 @vitejs/plugin-react-swc[17]

快速刷新(比 Babel 快約 20 倍)

啟用自動 JSX 運行時(Babel 在 v7.9.0 版本中引入此特性,相關(guān)閱讀:Introducing the New JSX Transform[18] 和 A new JSX transform[19]

Vite 4.1 (2023.02)

同步 Rollup 和 esbuild 版本

react 插件變化顯著

plugin-react 修復(fù)了很多 HMR bug

支持 SWC 的 Vite 版本,添加了對 SWC 插件的支持。

Vite 4.2 (2023.03)

改進(jìn)源代碼調(diào)試體驗

修復(fù) Chrome 開發(fā)工具在顯示相對路徑時的異常

通過 x_google_ignoreList 從堆棧跟蹤中排除某些文件的源映射,做到錯誤堆棧追蹤僅關(guān)注你在意的部分(相關(guān)閱讀:vite server.sourcemapIgnoreList[20] 和 The x_google_ignoreList source map extension[21])

Vite 4.3 (2023.04)

與 Vite 4.2 相比,4.3 帶來了全面的速度提升(Vite 4.3 is out![22])。

2199f370-6455-11ee-939d-92fbcf53809c.png

Vite 4.4 (2023.07)

實驗性支持 Lightning CSS[23](基于 Rust 實現(xiàn)的 CSS 編譯工具鏈),注意:它目前與其他 CSS 處理器互斥。

create-vite[24] 添加 solid 和 qwik 模板。

21a93420-6455-11ee-939d-92fbcf53809c.png

Vite 5.0 (當(dāng)前處于 beta 版)

最低 Node.js 版本要求 18+

CommonJS API 已棄用。注意:并未對其進(jìn)行刪除,如果你仍在使用 Vite 中的通用 API,也不會有任何問題。但會收到警告,督促你轉(zhuǎn)向 ESM API。






審核編輯:劉清

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

    關(guān)注

    68

    文章

    19404

    瀏覽量

    230774
  • CCS
    CCS
    +關(guān)注

    關(guān)注

    8

    文章

    183

    瀏覽量

    40005
  • SSR
    SSR
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    17803
  • ESM
    ESM
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    9064
  • rust語言
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    3018

原文標(biāo)題:ViteConf 2023:Vite 即將 Rust 化

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

收藏 人收藏

    評論

    相關(guān)推薦

    Rust語言如何與 InfluxDB 集成

    Rust 是一種系統(tǒng)級編程語言,具有高性能和內(nèi)存安全性。InfluxDB 是一個開源的時間序列數(shù)據(jù)庫,用于存儲、查詢和可視大規(guī)模數(shù)據(jù)集。Rust 語言可以與 InfluxDB 集成,提供高效
    的頭像 發(fā)表于 09-30 16:45 ?1217次閱讀

    關(guān)于虛擬儀器測試環(huán)境VITE的分析

    VITE標(biāo)準(zhǔn)體系結(jié)構(gòu)分析VITE實現(xiàn)體系結(jié)構(gòu)VITE核心信息模型結(jié)構(gòu)
    發(fā)表于 05-12 06:31

    RUST在嵌入式開發(fā)中的應(yīng)用是什么

    的文檔、有用的錯誤消息、友好編譯器、一流的工具,只是Rust的幾個好處。它帶有一個集成的包管理器和構(gòu)建工具,支持自動完成和類型檢查的智能多編輯器,一個自動格式程序,等等。為什么在嵌入式開發(fā)中使用Rust?
    發(fā)表于 12-24 08:34

    Rust代碼中加載靜態(tài)庫時,出現(xiàn)錯誤 ` rust-lld: error: undefined symbol: malloc `怎么解決?

    “ [i]malloc ”、“ [i]exit ”。我驗證了使用 ` [i]nm ` 命令。 問題是我打算使用 ffi 在 rust 中使用這個靜態(tài)庫。當(dāng)我嘗試在我的 Rust 代碼中加載靜態(tài)庫
    發(fā)表于 06-09 08:44

    精彩預(yù)告 | OpenHarmony即將亮相MTSC 2023

    MTSC 2023 第 12 屆中國互聯(lián)網(wǎng)測試開發(fā)大會(深圳站)即將2023 年 11 月 25 日,在深圳登喜路國際大酒店舉辦,大會將以“1 個主會場+4 個平行分會場”的形式呈現(xiàn),聚集一眾
    發(fā)表于 11-22 10:28

    2023年獎杯收到

    今天非常高興收到了論壇發(fā)送的2023年“年度優(yōu)秀版主”獎杯,今年不知不覺間就將結(jié)束,期待即將到來的2024年。加油論壇,加油各位壇友!
    發(fā)表于 12-09 22:26

    Go Vite通用的去中心應(yīng)用平臺

    go-vite.zip
    發(fā)表于 04-22 10:59 ?1次下載
    Go <b class='flag-5'>Vite</b>通用的去中心<b class='flag-5'>化</b>應(yīng)用平臺

    GCC將加入對Rust的支持

    GCC Rust 的代碼仍然需要更仔細(xì)的審查。按照計劃,它有可能作為 GCC 13 的一部分而亮相,GCC 13 將于 2023 年 4 月左右發(fā)布穩(wěn)定版,其對 Rust 語言的支持有希望達(dá)到 beta 級別。
    的頭像 發(fā)表于 12-13 10:04 ?1128次閱讀

    Chromium正式開始支持Rust

    泛地在Chromium中使用Rust還需要時間去評估。https://security.googleblog.com/2023/01
    的頭像 發(fā)表于 01-14 10:04 ?1011次閱讀

    Go/Rust挑戰(zhàn)Java/Python地位

    增長持續(xù)下去,其可能很快就會直接挑戰(zhàn) Java 和 Python 的地位。Go 是其中第三大最受歡迎的語言,其次是 C++、JavaScript、C#、C、Rust、TypeScript、R、Kotlin 和 Scala。
    的頭像 發(fā)表于 03-06 10:19 ?724次閱讀

    Rust流處理新秀,即將抗衡Flink霸主地位

    之前也有Rust嘗試做大數(shù)據(jù)套件,但是都沒有很成功的案例?;蛟SArroyo將是第一個用Rust編寫的分布式流處理引擎成功的案例,這樣將再次證明Rust在大數(shù)據(jù)基建領(lǐng)域的可行性。
    的頭像 發(fā)表于 04-09 10:21 ?3246次閱讀

    Vite 4.3正式發(fā)布,前端構(gòu)建工具

    最新發(fā)布的 Vite 4.3 顯著提升了性能。發(fā)布公告寫道,Vite 團(tuán)隊在這個版本中將工作重心放在提升開發(fā)服務(wù)器的性能上,其中包括簡化解析邏輯、改進(jìn)熱路徑、實現(xiàn)更智能的緩存以查找 package.json,TS 配置文件和解析的 URL。
    的頭像 發(fā)表于 04-26 14:23 ?1022次閱讀
    <b class='flag-5'>Vite</b> 4.3正式發(fā)布,前端構(gòu)建工具

    GOTC 2023出品人吳迪:字節(jié)跳動將持續(xù)投入Rust

    面、數(shù)據(jù)平臺、圖數(shù)據(jù)庫、WebAssembly 等。去年 9 月,字節(jié)跳動還開源了 RPC 框架 Volo 及相關(guān)生態(tài)。 在?GOTC 2023?臨近之際,字節(jié)跳動服務(wù)框架 Rust 負(fù)責(zé)人
    的頭像 發(fā)表于 05-24 09:29 ?443次閱讀

    Rust的內(nèi)部工作原理

    Rust到匯編:了解 Rust 的內(nèi)部工作原理 非常好的Rust系列文章,通過生成的匯編代碼,讓你了解很多Rust內(nèi)部的工作機(jī)制。例如文章有 Rus
    的頭像 發(fā)表于 06-14 10:34 ?824次閱讀
    <b class='flag-5'>Rust</b>的內(nèi)部工作原理

    Vite 5正式發(fā)布,性能大幅提升

    公告指出,Vite 5 的重點是清理 API(刪除已棄用的功能),并精簡了幾個功能以解決長期存在的問題。例如,將 define 轉(zhuǎn)換為使用正確的 AST 替換,而不是使用 regexes。項目團(tuán)隊表示,他們將繼續(xù)推進(jìn)實現(xiàn)面向未來的 Vite。
    的頭像 發(fā)表于 11-20 16:20 ?1148次閱讀
    主站蜘蛛池模板: 女性爽爽影院免费观看 | 国产精品久久久久影院 | 免费看a毛片| 亚洲免费三区 | 乱辈通奷XXXXXHD猛交 | 含羞草影院AE在线观看 | 国产乱码伦人偷精品视频 | 欧美精品一区二区在线电影 | 99久久无码一区人妻A片竹菊 | yellow日本动漫观看免费 | 好大好爽好深舒服死了 | 老男人粗大猛 | 受喷汁红肿抽搐磨NP双性 | 国产不卡一卡2卡三卡4卡网站 | 国产午夜精品理论片影院 | 99热久这里都是精品小草 | 男男女女爽爽爽视频免费 | 久久re热在线视频精99 | 四虎永久在线精品免费A | 高h gl肉文| 暖暖视频在线高清播放 | 国产精品无码久久久久不卡 | 国产激情视频在线 | 亚洲中文字幕永久在线全国 | 亚洲视频在线看 | 国产成人无码免费精品果冻传媒 | 在线 | 果冻国产传媒61国产免费 | 一级做a爰片久久毛片苍井优 | 日日噜噜噜夜夜爽爽狠狠 | 麻豆国产96在线日韩麻豆 | 年轻的搜子8中字在线观看 年轻的朋友4在线看中文字幕 | 国产亚洲精品久久久999密臂 | 青草国产在线视频免费 | 男人扒开添女人下部口述 | 国内国外精品影片无人区 | 青青伊人国产 | 英国video性精品高清最新 | 年轻的女职工在线观看 | 无修肉动漫在线观看影片 | 热99re久久精品国产首页 | 动漫H片在线观看播放免费 动漫H片在线播放免费高清 |