TypeScript - tsconfig.json
Quick Chat
當目錄中出現了 tsconfig.json 文件,則表示該目錄是 TypeScript 專案的根目錄。tsconfig.json 檔案指定了編譯專案所需的根目錄下的檔案以及編譯選項。實務上在不同的開發情境中,準備不同的 tsconfig.json 是非常有必要的。
- 開發環境中,可能希望啟用更多的錯誤檢查和調試資訊,以便更快地發現問題。
- 生產環境中,則可能希望關閉這些額外的檢查,以提升編譯速度並減少輸出檔案大小。
呼叫 tsc 時使用 --project
或 -p
選項來指定相應的配置檔案。
tsc -p tsconfig.build.json
Guide
基底 tsconfig
Node 20 推薦的 tsconfig.json
npm install -D @tsconfig/node20
可以繼承基底 tsconfig 並覆寫參數
{
"extends": "@tsconfig/node20/tsconfig.json",
"compilerOptions": {
"preserveConstEnums": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
Monorepo 相關參數
{
"compilerOptions": {
"incremental": true,
"composite": true
}
}
incremental
用於加速 TypeScript 的編譯過程,特別是當代碼庫很大或涉及多個子項目時。
- 增量編譯:啟用後,TypeScript 會在編譯過程中生成
.tsbuildinfo
文件,該文件包含了上次編譯的狀態和信息。當進行下一次編譯時,TypeScript 只會編譯那些自上次編譯以來發生變化的文件,從而大幅縮短編譯時間。
composite
主要用於多個 TypeScript 項目之間的依賴管理,特別是在 monorepo 結構中,這個選項是開啟增量編譯和項目參考的前提
強制啟用的檢查:啟用後,TypeScript 會強制檢查並要求一些配置:
rootDir
和outDir
必須明確設置。- 必須有至少一個
tsconfig.json
中的文件包含在項目中(防止空的配置)。
生成中間構建文件:啟用
composite
後,TypeScript 會生成中間構建文件(如.d.ts
文件和.tsbuildinfo
文件),這些文件可以被其他依賴它的項目直接使用,避免重複編譯整個項目。