Turborepo 1.4
Turborepo 1.4 帶來
- 自動環境變數包含: 我們將自動為您推斷常用的框架環境變數。無需在
turbo.json
中自行宣告。 eslint-config-turbo
: 透過新的 ESLint 外掛程式增強回饋。- 新的框架和函式庫範例: 社群要求的新入門範本和範例。
立即執行 npm install turbo@latest
來更新。
自動環境變數包含
為了協助確保跨環境的正確快取,Turborepo 現在會在計算使用 Astro、Create React App、Gatsby、Next.js、Nuxt、SvelteKit、Vite、Vue 和更多工具建置的應用程式的快取金鑰時,自動推斷並包含公開的環境變數。如果先前您已手動宣告了框架特定的公開環境變數,您可以安全地從 turbo.json
中移除它們。
請注意,只有在 Turborepo 成功推斷出您的應用程式所使用的框架時,此自動偵測和包含才會生效。此外,環境變數只會包含在使用該框架的工作區中的工作快取金鑰中。換句話說,針對 Next.js 應用程式推斷的環境變數,只會包含在偵測為 Next.js 應用程式的工作區的快取金鑰中。單一程式碼庫中其他工作區的工作不受影響。
例如,考慮一個具有三個工作區的單一程式碼庫:一個 Next.js 專案、一個 Create React App 專案和一個 TypeScript 套件。每個都有一個 build
指令碼,且兩個應用程式都依賴於 TypeScript 專案。假設此 Turborepo 具有一個標準的 turbo.json
管道,依序建置它們
從 1.4 版開始,當您執行 turbo run build
時,Turborepo 在建置 TypeScript 套件時將不會考慮任何相關的建置時間環境變數。然而,在建置 Next.js 應用程式時,Turborepo 將推斷以 NEXT_PUBLIC_
開頭的環境變數可能會變更 .next
資料夾的輸出,因此在計算雜湊時應將其包含在內。同樣地,在計算 Create React App 的 build
指令碼的雜湊時,所有以 REACT_APP_PUBLIC_
開頭的建置時間環境變數都將包含在內。
此框架雜湊特異性的改進是朝向最佳、安全和正確快取邁出的重要一步。
eslint-config-turbo
我們還建立了一個新的 ESLint 設定,以進一步在編輯器中提供協助,以確保您的 Turborepo 快取可以在每個環境中正確共享。雖然我們的新雜湊演算法應該涵蓋大多數框架的大多數情況,但此 ESLint 設定將為使用其他未加上框架前綴但會影響建置輸出(即快取)的建置時間內嵌環境變數的團隊,以及使用我們無法自動偵測的自有內部框架的團隊,提供編輯器內的回饋。
若要開始使用,請在您的根 eslintrc
檔案中延伸自 eslint-config-turbo
如果您偏好對規則有更多控制權,則可以先將 eslint-plugin-turbo
外掛程式新增至外掛程式,然後設定所需的規則,來直接安裝並設定該外掛程式
如果您在程式碼中使用未在您的 turbo.json
中宣告的非框架相關環境變數,此外掛程式將會向您發出警告。
從 1.4.x 版開始,我們現在在我們所有的範例以及透過 npx create-turbo
產生新的專案中都包含 eslint-config-turbo
。
請參閱 ESLint 文件,進一步了解 ESLint 設定和外掛程式。
新的框架和函式庫範例
根據您的回饋和建議,我們建立了新的範例,將 Turborepo 整合到您的工作流程中
其他錯誤修正和改進
社群
自從六月發布 Turborepo v1.3 以來,我們看到了令人難以置信的採用和社群成長
- 超過 8.65k 個 GitHub 星星
- 每週 365k 次 NPM 下載量,自 4 月下旬以來增加 2 倍
- 透過 Vercel 上的遠端快取節省 10 年的運算時間,每週節省 10 個月
Turborepo 是我們所有貢獻者(包括我們的核心團隊)共同努力的成果。
此版本的發布歸功於以下貢獻者:@B2o5T、@chitchu、@elis、@gsoltis、@harshcut、@jaredpalmer、@kocisov、@nathanhammond、@neolivz、@NuroDev、@oneezy、@samouri、@shayc、@StevenMatchett、@tknickman、@trevorr、@zsoldosp 等等!
感謝您持續的支持、回饋和協作,讓 Turborepo 成為您首選的建置工具。