我在 --harmony 标志下使用带有 Node 的 TypeScript (1.6),所以我想将 es6 模块语法转换为 commonjs。
据我所知,我无法使用 TypeScript 1.6 执行此操作。如果我将目标设置为 es6,并将模块设置为 commonjs,我会收到 TypeScript 错误 -
Cannot compile modules into 'commonjs', 'amd', 'system' or 'umd' when targeting 'ES6' or higher.
为什么 TypeScript 不能编译成带有 ES6 目标的 commonjs?我想很多人都想这样做,因为 Node 还不支持 ES6 模块。
我原以为新的 moduleResolution 编译器选项可能会解决这个问题,但它似乎没有做任何事情。
目前,我不得不使用 babel 来将模块语法转换为 commonjs,但我想从我的构建中删除 babel,以便我可以利用源映射。
有什么办法可以实现吗?注意:我不想转译为 ES5。我希望我的 JS 在和谐标志下作为 ES6 运行。谢谢!
最佳答案
TypeScript 团队将在 the next release 中添加对您正在寻找的内容的支持。 .您可以等待数周/数月。或者,您可以为 ES6 模块加载器使用 Polyfill:
网上有更多类似上述的库,只需检查哪个库适合您,直到对 --module
和 --target es6
的官方支持到来。
更新
tsconfig.json
{
"compilerOptions": {
"target":"ES6",
"moduleResolution": "classic",
}
}
- ES6 生成器支持
- 没有
import
由于"moduleResolution": "经典"
关于javascript - es6 模块到 commonjs,在 node harmony 标志下使用 typescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32919946/