【发布时间】:2017-06-17 18:34:55
【问题描述】:
我正在使用 TypeScript 编写基于 JavaScript 的测试。
我想要一个tsc --watch 命令,以便能够正确处理所有文件的转换,这是关键部分。我认为使用多个 tsconfig.json 文件是这里的方法。
我有这个结构:
/tests
/e2e
tsconfig.json
/src
/target
/unit
tsconfig.json
/src
/target
我想把 TypeScript 文件放在 src 目录中,然后转译到目标目录中。
我的问题是 - 如果您有一个可以将文件列表作为输入的 bash 脚本,您如何将文件转换到它们各自的目标目录中?
例如,输入文件:
/home/you/projects/x/test/e2e/src/a.ts
/home/you/projects/x/test/e2e/src/b.ts
/home/you/projects/x/test/e2e/src/c.ts
/home/you/projects/x/test/unit/src/foo.ts
/home/you/projects/x/test/unit/src/bar.ts
/home/you/projects/x/test/unit/src/baz.ts
所需的输出文件:
/home/you/projects/x/test/e2e/target/a.js
/home/you/projects/x/test/e2e/target/b.js
/home/you/projects/x/test/e2e/target/c.js
/home/you/projects/x/test/unit/target/foo.js
/home/you/projects/x/test/unit/target/bar.js
/home/you/projects/x/test/unit/target/baz.js
有没有办法让tsc 命令获取这些文件并将它们全部转换为一个单行命令到它们各自的目标目录?
我认为这可能非常棘手。我可能必须按它们的目录名对它们进行分组,并分别转换每个组。那会困难得多。
【问题讨论】:
-
你是如何编译它们的?
-
tsc 有一个 target dir 选项可以做到这一点,你可以在 tsconfig.json 中设置它:-/
-
outDirin tsconfig.json 就是你要找的东西 -
各位,应该有两个不同的outDirs,仔细阅读问题
-
你可以做的是用不同的配置创建 2 个项目(如果你使用 gulp/grunt 更容易)并使用
include编译器选项来包含不同的文件。
标签: javascript bash typescript typescript2.0 tsc