2016-08-12 27 views
0

我試圖讓編譯Typescript到Javascript時保持目錄結構的Intellij Idea。我的目錄結構如下:Intellij Idea - 編譯腳本到Javascript和保持目錄結構

root 
- ts 
    - SomeClass1.ts 
    - SomeFolder 
    - AwesomeClass2.ts 
- tsc 

我想編譯後的文件爲:

root 
- tsc 
    - SomeClass1.js 
    - SomeFolder 
    - AwesomeClass2.js 

How I want it to look like

這是我的打字稿配置:

Typescript configuration

Typescript installation

但是嘗試編譯,我在控制檯收到此錯誤時:

Typescript compilation error

  • 如果設置了「使用輸出路徑」,以「TSC」,它的工作原理,但目錄結構消失並導致RequireJS不再查找文件。
  • 如果我將「使用輸出路徑」設置爲「tsc \ $ FileDirRelativeToSourcepath $」,我會得到「無法讀取屬性'replace'的undefined」。
  • 如果我禁用「使用輸出路徑」並在「命令行選項」中使用「--outDir」,則文件會編譯到正確的目錄中,但是IntelliJ不會在更改後自動重新編譯文件。

UPDATE,由Nitzan Tomer的溶液:

在根目錄中創建tsconfig.json:

{ 
    "compilerOptions": { 
    "module": "amd", 
    "target": "es5", 
    "outDir": "tsc", 
    "rootDir": "ts", 
    "sourceMap": true, 
    "declaration": true 
    }, 
    "exclude": [ 
    "tsc" 
    ] 
} 

和使能 「使用tsconfig.json」 中的IntelliJ。

回答

1

如果使用tsconfig.json可以指定rootDiroutDir,如果你這樣做,那麼它將保持rootDir的目錄結構中outDir內部編譯版本。

你的情況:

{ 
    "compilerOptions": { 
     "outDir": "tsc", 
     "rootDir": "ts", 
     "sourceMap": true, 
     "declaration": true 
    } 
} 

將這個文件在你root目錄tsconfig.json在的IntelliJ/webstorm Enable Typescript Compiler然後Use tsconfig.json

+0

工作,謝謝!我添加了排除指令,因爲它試圖編譯「tsc」中的文件。我將用tsconfig.json更新我的原始問題。 – RedShift