如果我运行 $ tsc --out foo.js MyFile.ts
我会得到文件 foo.js
。但是,如果我指定 --module commonjs
选项,--out
参数将被覆盖,并且我得到 MyFile.js 即: $ tsc --out foo.js --module commonjs MyFile.ts
鉴于我在 TS 代码中使用 export
赋值来让我的类可用于我的 NodeJS JS 代码,我显然需要 --module
标志。不过,我认为 --out
标志值被忽略/覆盖是一个错误。
原因是我想在生成的JS代码后缀.gen.js,以便我可以编写SCM规则来忽略生成的代码。
$ node --version && tsc --version
v0.10.22
Version 0.9.7.0
最佳答案
对于属于多个模块的文件,
--out
会被忽略,因为它的含义并不十分清楚(如果您指定了 tsc --out foo.js Module1.ts Module2.ts
,其中 Module1
有 require
的 Module2
会怎样?)。
这里的理论是,如果您希望将文件命名为不同的名称,您可以使用外部构建工具(grunt、jake、make、frakes 等)来重命名文件。它很少打算将外部模块文件编译为其他文件名,因为它会编译但不会运行。
There's a CodePlex issue您可以投票以表示您对实现此 1.0 后的支持。
关于node.js - 为什么 --module 会覆盖 Typescript 编译器的 --out 标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293786/