Categories
程式開發

Facebook推出實驗性JavaScript工具鏈Rome


Rome是一個實驗性的JavaScript工具鏈,由Babel和Yarn的作者Sebastian McKenzie以及Facebook的React Native團隊創建。 Rome包括編譯器、linter、格式化器、打包器和測試框架,旨在成為處理JavaScript源代碼的綜合性工具。

同其它類似項目不同,Rome並沒有將各種工具整合到工作流,而是對JavaScript生態系統進行了重新思考,對整個工具鏈採用了不依賴第三方庫的大膽實現。

Rome通過TypeScript編寫,採用monorepo架構,所有代碼都以內部包形式存在。 Rome完全自託管並且每次更新都是使用舊版本自編譯而來。 Rome支持對JSX、Flow和TypeScript等代碼的處理。

目前,Rome入門文檔的內容非常少,這也是有意為之,文檔只包含了關於Rome初始化、在JSON文件中定義設置以及包括運行、檢查、編譯和解析源代碼等操作的內容。

Preact和Jason Miller創建了Rome的概述以及可用CLI命令的詳細說明,並將其打包輸出與Rollup庫進行了對比,還提供了一些示例及其它早期見解。

Rome項目有一套清晰的開髮指南,包括簡明易懂的錯誤消息、盡可能小的API空間佔用和強類型代碼等。 Rome團隊現在的關注點是linting,他們維護了一個非常活躍的GitHub問題列表。正如McKenzie所解釋的:

Rome目前的工作重心是linter。這是將Rome變成最容易使用的工具鏈的目標裡阻力最小的一個環節。

Rome做了一次很有價值的反思:或許可以把cruft從當前的JavaScript開發和工具中移除,雖然現在還不能確定,這種做法會改變現狀,還是只是為JavaScript工具鏈提供了另外一個選項。社區對此非常感興趣,人們已經在討論Rome是否會在未來支持WebAssembly

Rome遵循MIT協議,它還不能在生產環境中使用,目前只能從源碼構建。對於那些對實驗性工具鏈感興趣並且能夠遵守貢獻準則行為守則的貢獻者來說,Rome還是很開放的。

原文鏈接:

Facebook Introduces Rome Experimental JavaScript Toolchain