2017-06-22 56 views
0

打字稿2.3.3的根目錄中的所有文件2015年打字稿產生內VS在OUTDIR

有一個包含TSSrc/Subfolder1和大量存在的.ts文件的項目。

有一個流動tsconfig.json

{ 
    "compilerOptions": { 
    "noImplicitAny": true, 
    "noEmitOnError": true, 
    "removeComments": false, 
    "sourceMap": false, 
    "target": "es5", 
    "outDir": "../Scripts/TSOutput" 
    }, 
    "files": [ 
    "Subfolder1/file1.ts", 
    "Subfolder1/file2.ts", 
    "Subfolder1/file3.ts" 
    ], 
    "compileOnSave": true 

} 

我的問題是打字稿生成所有的.js文件直接在OUTDIR但不OUTDIR/Subfolder1,如何迫使它總是使用適當的子文件夾層次結構?

到目前爲止,我已經找到了唯一的解決辦法是在不同的源子

"files": [ 
     "Subfolder2/stub.ts", 
     "Subfolder1/file1.ts", 
     "Subfolder1/file2.ts", 
     "Subfolder1/file3.ts" 
     ] 

創建額外的假的.ts文件這種解決方法TS產生Subfolder1和Subfolder2的OUTDIR並提出js文件裏面有後。 - 這是一種很好的解決方案,甚至可以節省一些人的時間,除非有正確的方法去做。請幫助,如果你知道如何。

+1

變化' 「OUTDIR」:」 ../腳本/ TSOutput 「''以」 OUTDIR 「:」 ../腳本/ TSOutput/Subfolder1" '或者使用' rootDir' –

+1

嘗試將所有源文件/目錄放在父目錄下,讓我們說「src」,然後嘗試使用''rootDir「:」src「'而不是'files' –

+0

對不起,也許我不清楚,但我需要TS將輸出文件放到Subfolder1或Subfolder2,具體取決於.ts文件位於Src文件夾中的位置,因此將OutDir更改爲/ Scripts/TSOutput/Subfolder1不會對我有所幫助。 – user2932688

回答

1

由於您指出,您應該使用outDirrootDir的組合。請查看this TypeScript GitHub issue,這與您遇到的問題大致相同。你的tsconfig文件應該是這樣的:

{ 
    "compilerOptions": { 
    "noImplicitAny": true, 
    "noEmitOnError": true, 
    "removeComments": false, 
    "sourceMap": false, 
    "target": "es5", 
    "outDir": "../Scripts/TSOutput", 
    "rootDir": "./" 
    }, 
    "files": [ 
    "Src/Subfolder1/file1.ts", 
    "Src/Subfolder1/file2.ts", 
    "Src/Subfolder1/file3.ts" 
    ], 
    "compileOnSave": true 
} 

根據上面的評論進行編輯。

如果您的TS文件位於Src文件夾下的文件夾中,並且您希望TSOutput文件夾中的JS文件在相同的子文件夾下,那麼上面的tsconfig應該可以工作。

這將使Src/Subfolder1/file1.ts輸出到../Scripts/TSOutput/Subfolder1/file1.js