網站搜尋

javascript - 如何監視並編譯所有 TypeScript 源碼?


我正在嘗試將一個個人專案轉換為 TypeScript,但似乎無法使用 tsc 工具來監視和編譯我的檔案。說明中提到我應該使用 -w 參數,但看起來它無法遞迴地監視和編譯某個目錄下的所有 *.ts 檔案。這看起來像是 tsc 應該能處理的情況。我有哪些選擇?

答案#1

在你的專案根目錄中建立一個名為 tsconfig.json 的檔案,並在其中加入以下幾行:

{
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "module": "commonjs",
        "target": "ES5",
        "outDir": "ts-built",
        "rootDir": "src"
    }
}

請注意,outDir 應該是用來存放編譯後 JS 檔案的目錄路徑,而 rootDir 應該是包含你的源 (.ts) 檔案的目錄路徑。

打開終端並運行 tsc -w,它會將 src 目錄中的任何 .ts 文件編譯成 .js,並將它們存放到 ts-built 目錄中。

答案#2

其他的答案可能在多年前是有用的,但它們現在已經過時了。

鑑於一個專案有一個 tsconfig 檔案,執行這個命令...

tsc --watch

... 以監視變更的檔案並在需要時進行編譯。文件說明如下:

以監視模式運行編譯器。監視輸入檔案並在變更時觸發重新編譯。監視檔案和目錄的實現可以使用環境變數進行配置。更多詳情請參閱配置監視。

要回答最初的問題,即使在沒有原生支援的平台上,也可以進行遞歸目錄監視,正如《配置監視》文件中所解釋的那樣:

在 Node 中,對不原生支持遞歸目錄監視的平台進行目錄監視,是通過使用 TSC_WATCHDIRECTORY 選擇的不同選項,遞歸地為子目錄創建目錄監視器來實現的。

答案#3

TypeScript 1.5 beta 引入了對名為 tsconfig.json 的配置文件的支持。在該文件中,你可以配置編譯器、定義代碼格式化規則,更重要的是,為它提供有關你專案中 TS 文件的資訊。

一旦正確配置後,你只需運行 tsc 命令,就可以編譯專案中所有的 TypeScript 程式碼。

如果你想讓它監視檔案的變更,那麼你只需在 tsc 命令中添加 --watch 即可。

這是一個 tsconfig.json 文件的範例

{
"compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "noLib": false
},
"include": [
    "**/*"
],
"exclude": [
    "node_modules",
    "**/*.spec.ts"
]}

在上面的範例中,我包含了專案中所有的 .ts 檔案(遞迴)。請注意,你也可以使用一個包含陣列的 "exclude" 屬性來排除檔案。

如需更多資訊,請參閱文件: http://www.typescriptlang.org/docs/handbook/tsconfig-json.html

答案#4

你可以這樣查看所有檔案

tsc *.ts --watch