es6 模块到 commonjs,在 node harmony 标志下使用 typescript
es6 modules to commonjs with typescript under node harmony flag
我在 --harmony 标志下使用带有节点的 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?我想很多人都想这样做,因为节点还不支持 ES6 模块。
我原以为新的 moduleResolution 编译器选项可能会解决这个问题,但它似乎没有任何作用。
目前,我不得不使用 babel 来将模块语法转换为 commonjs,但我想从我的构建中删除 babel,以便我可以利用源映射。
有什么办法可以实现吗?注意:我不想转译为 ES5。我希望我的 JS 运行 作为和谐旗帜下的 ES6。谢谢!
TypeScript 团队将在 the next release 中添加对您正在寻找的内容的支持。可以等几个weeks/months。或者,您可以为 ES6 模块加载器使用 Polyfill:
还有更多类似上述的在线库,只需检查哪个库适合您,直到 --module
和 --target es6
的官方支持到来。
更新
tsconfig.json
{
"compilerOptions": {
"target":"ES6",
"moduleResolution": "classic",
}
}
- ES6 生成器支持
- 没有
import
东西转译由于
"moduleResolution": "classic"
我在 --harmony 标志下使用带有节点的 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?我想很多人都想这样做,因为节点还不支持 ES6 模块。
我原以为新的 moduleResolution 编译器选项可能会解决这个问题,但它似乎没有任何作用。
目前,我不得不使用 babel 来将模块语法转换为 commonjs,但我想从我的构建中删除 babel,以便我可以利用源映射。
有什么办法可以实现吗?注意:我不想转译为 ES5。我希望我的 JS 运行 作为和谐旗帜下的 ES6。谢谢!
TypeScript 团队将在 the next release 中添加对您正在寻找的内容的支持。可以等几个weeks/months。或者,您可以为 ES6 模块加载器使用 Polyfill:
还有更多类似上述的在线库,只需检查哪个库适合您,直到 --module
和 --target es6
的官方支持到来。
更新
tsconfig.json
{
"compilerOptions": {
"target":"ES6",
"moduleResolution": "classic",
}
}
- ES6 生成器支持
- 没有
import
东西转译由于"moduleResolution": "classic"