Facebook出品的前端工具鏈涼了!
9 月 2 日,F(xiàn)acebook 出品的前端工具鏈 Rome 宣布停止維護(hù),儲(chǔ)存庫已存檔,項(xiàng)目由 babel 和 yarn 的作者 Sebastian McKenzie 發(fā)起。
此后,Rome 將由 Biome 進(jìn)行維護(hù)和新功能開發(fā)。
公司已經(jīng)將 Rome 團(tuán)隊(duì)所有成員都解雇了。
發(fā)布僅三年的前端工具鏈 Rome 涼了。
Rome 的官方介紹:
- Rome 是一個(gè)用于 JavaScript、TypeScript、JSON、HTML、Markdown 和 CSS 的格式化程序、代碼檢查器、打包工具等工具。
- Rome 旨在取代 Babel、ESLint、webpack、Prettier、Jest 等工具。
- Rome 將以前獨(dú)立的功能融合到一個(gè)工具中。通過構(gòu)建在共享基礎(chǔ)上,可以提供一致的代碼處理、錯(cuò)誤顯示、并行工作、緩存和配置體驗(yàn)。
- Rome 使用 Rust 編寫。
- Rome 具有一流的集成開發(fā)環(huán)境(IDE)支持,擁有一個(gè)復(fù)雜的解析器,能夠以完全準(zhǔn)確的方式表示源代碼,并具備出色的錯(cuò)誤恢復(fù)能力。
Rome 的目標(biāo)就是統(tǒng)一整個(gè)前端開發(fā)工具鏈。Rome 是一整套工具,包含傳統(tǒng)上前端生態(tài)系統(tǒng)中獨(dú)立工具的功能,將其稱之為工具鏈。它不是現(xiàn)有工具的集合,而是完全定制的,主要是從頭開始構(gòu)建的,完全包含在單個(gè)包和代碼庫中。
和其它類似項(xiàng)目不同,Rome并沒有將各種工具整合到工作流,而是對JavaScript生態(tài)系統(tǒng)進(jìn)行了重新思考,對整個(gè)工具鏈采用了不依賴第三方庫的大膽實(shí)現(xiàn)。Rome通過TypeScript編寫,采用 monorepo 架構(gòu),所有代碼都以內(nèi)部包形式存在。Rome完全自托管并且每次更新都是使用舊版本自編譯而來。
下面就來簡單看一下 Rome 的發(fā)展歷程:
2020年8月9日:正式發(fā)布
2020 年 8 月 9 日,Babel 和 Yarn 的作者 Sebastian McKenzie 向全世界介紹了 Rome,稱其為 Babel(他的第一個(gè)作品)的“精神繼承者”。第一個(gè)測試版是針對 Rome 的 JS/TS linter,但 Sebastian 宣稱 Rome 最終將成為一個(gè)整體工具鏈,“取代 Babel、ESLint、webpack、Prettier、Jest 等”。
2021年5月4日:成立公司
2021 年 5 月 4 日:在這一非常大膽的愿景的支持下,Rome 宣布成立了一家公司,并籌集了 450 萬美元的風(fēng)險(xiǎn)投資。公告宣稱,Rome“將數(shù)十個(gè)獨(dú)立的工具整合為一個(gè)”,但此時(shí) Rome 仍然只是一個(gè)處于測試階段的代碼檢查工具。幸運(yùn)的是,他們擁有 14550 個(gè) GitHub star,換來了 450 萬美元的投資。
2021年9月21日:用 Rust 重寫
2021年9月21日,Rome 宣布將使用Rust進(jìn)行全面重寫,這似乎是導(dǎo)致出現(xiàn)問題的一大原因。聯(lián)合創(chuàng)始人Jamie Kyle 在三個(gè)月后離開了公司,2022年2月,團(tuán)隊(duì)表示他們?nèi)蕴幱谝粋€(gè)"相當(dāng)漫長、困難的重寫過程"中。
2022年11月8日:v10版本發(fā)布
2022年11月8日,Rome發(fā)布了v10版本,其中包括一個(gè)高效的代碼檢查工具和受Prettier啟發(fā)的代碼格式化工具。這是自從14個(gè)月前進(jìn)行Rust重寫以來的第一個(gè)穩(wěn)定版本,也是從Rome項(xiàng)目看到的最后一個(gè)值得注意的發(fā)布。Sebastian 在這個(gè)發(fā)布后再也沒有關(guān)于Rome的推文,而且所有的Rome員工在幾個(gè)月內(nèi)都被解雇了。
2023年8月29日:Biome 誕生
2023年8月29日,Emanuele Stoppa 和其他前 Rome 核心團(tuán)隊(duì)成員宣布了Biome的誕生,這是"Rome的官方分支"。Emanuele 表示 Rome 將不再維護(hù),并且"與當(dāng)前所有者聯(lián)系的多次嘗試均以失敗告終",因此將以一個(gè)新的名字和項(xiàng)目重新開始。