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 應用程式的工作區的快取金鑰中。Monorepo 中其他工作區的任務將不受影響。
例如,考慮一個具有三個工作區的 monorepo:一個 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 版開始,我們現在將 eslint-config-turbo
包含在我們所有的範例以及透過 npx create-turbo
產生的新專案中。
在 ESLint 文件中深入瞭解 ESLint 設定和外掛程式。
新的框架和函式庫範例
根據您的意見和建議,我們建立了新的範例,將 Turborepo 整合到您的工作流程中
其他錯誤修正和改進
社群
自從 6 月發佈 Turborepo v1.3 以來,我們看到了驚人的採用率和社群成長
- 8.65k+ GitHub 星星
- 每週 NPM 下載量 36.5 萬次,自 4 月底以來成長 2 倍
- 透過 Vercel 上的遠端快取節省了 10 年的運算時間,每週節省 10 個月
Turborepo 是我們所有貢獻者(包括我們的核心團隊)共同努力的成果。
此版本由以下人員貢獻:@B2o5T、@chitchu、@elis、@gsoltis、@harshcut、@jaredpalmer、@kocisov、@nathanhammond、@neolivz、@NuroDev、@oneezy、@samouri、@shayc、@StevenMatchett、@tknickman、@trevorr、@zsoldosp 等!
感謝您持續的支持、回饋和協作,使 Turborepo 成為您首選的建置工具。