2016年4月20日 星期三

將 TypeScript 檔案編譯至特定的位置

 ASP.NET Core 樣版的預設目錄結構如下
  • wwwroot:是用來存放與網站有關的靜態檔案
所以 TypeScript(*.ts) 的檔案就不應該放在 wwwroot 下面.

假設我正在寫一個 ng 的專案,我在專案 root 下建立一個名為 ngApp 的資料夾,用來存放 TypeScript 檔案,這個資料夾有自己的目錄結構,我希望編譯出來的 js 檔案可以放在 wwwroot/scripts 下面,該如何做呢?

圖片說明

1.希望編譯出的 ts 放在 wwwroot/script 下
2.開發 ng app 的 TypeScript 檔



可以在專案目錄下建立一個  tsconfig.json 檔案,compiler 會根據裡面的定義來處理,檔案內容如下
{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "rootDir": "",
    "outDir": "./wwwroot/scripts"
  },
    "exclude": [
        "node_modules",
        "wwwroot"
    ]
}


必需在 compilerOptions 屬性下設定 rootDir,outDir 這2個屬性
  • rootDir: 告訴 compiler 要編譯的 ts 檔案的根目錄在哪.
                   通常就是專案下所有的 ts檔,所以設定空白.
  • outDir:  告訴 compiler 編譯後產生的 js 檔要放在哪.
                   這邊指定在 wwwroot/scripts 目錄下
這邊要注意的是,如果只設定 outDir 而沒有設定 rootDir,則整個專案下的 ts 檔所編譯出來的 js 都會放在 wwwroot/scripts 下面,所以你想要output出來的目錄結構跟開發是相同的,必需設 定 rootDir 屬性才行.






沒有留言:

張貼留言