node.js - 为什么 --module 会覆盖 Typescript 编译器的 --out 标志?

标签 node.js typescript

如果我运行 $ 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,其中 Module1requireModule2 会怎样?)。

这里的理论是,如果您希望将文件命名为不同的名称,您可以使用外部构建工具(grunt、jake、make、frakes 等)来重命名文件。它很少打算将外部模块文件编译为其他文件名,因为它会编译但不会运行。

There's a CodePlex issue您可以投票以表示您对实现此 1.0 后的支持。

关于node.js - 为什么 --module 会覆盖 Typescript 编译器的 --out 标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293786/

相关文章:

javascript - 从 Node 中的 Keras JS 加载 MNIST 数据集

javascript - 检测 ES 模块是否从 Node 中的命令行运行

Node.js 标准输出刷新

JavaScript promise 返回

reactjs - JSX 元素类型 'Element[]' 不是 JSX 元素的构造函数?

angular - 具有自定义列的自定义 Angular 6 Material 表组件

javascript - 如何在 Storybook + Typescript 中使用 babel-emotion-plugin?

typescript 项目引用和 JavaScript 文件

node.js - Webpack + Express : How to serve static resources in/node_modules from the server

typescript - 递归映射类型中的错误未被检测到。为什么?