Intellij Idea - 将Typescript编译为Javascript并保持目录结构

时间:2016-08-12 12:54:52

标签: javascript intellij-idea typescript

我试图让Intellij Idea在将Typescript编译为Javascript时保留目录结构。我的目录结构如下:

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

我希望得到的编译文件是:

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

How I want it to look like

这是我的Typescript配置:

Typescript configuration

Typescript installation

但是在尝试编译时,我在控制台中收到此错误:

Typescript compilation error

  • 如果我设置"使用输出路径" to" tsc",它可以工作,但目录结构已经消失,导致RequireJS不再找到文件。
  • 如果我设置"使用输出路径"到" tsc \ $ FileDirRelativeToSourcepath $",我得到"无法读取属性'替换'未定义"。
  • 如果我禁用"使用输出路径"并使用" - 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 个答案:

答案 0 :(得分:1)

如果您使用tsconfig.json,则可以指定rootDiroutDir,如果您这样做,那么它将保留编译版本中rootDir的目录结构outDir

在你的情况下:

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

将此文件tsconfig.json放在root目录和intellij / webstorm Enable Typescript Compiler中,然后Use tsconfig.json