es6模块到commonjs节点和谐旗下的打字稿
我在–harmony标志下使用TypeScript(1.6),所以我想将es6模块语法转换为commonjs。
从我可以告诉,我不能用TypeScript 1.6做到这一点。 如果我将目标设置为es6,并将模块设置为commonjs,则会出现TypeScript错误 –
定位“ES6”或更高版本时,无法将模块编译为“commonjs”,“amd”,“system”或“umd”。
为什么不将TypeScript编译成commonjs与ES6目标? 我想很多人都希望这样做,因为节点还不支持ES6模块。
我以为新的moduleResolution编译器选项可能会解决这个问题,但它似乎没有做任何事情。
目前,我不得不使用babel来将模块语法转换为commonjs,但是我想从构build中删除babel,这样我就可以利用源映射。
有什么办法可以做到这一点? 注意:我不想传输到ES5。 我希望我的JS在和谐标志下作为ES6运行。 谢谢!
TypeScript团队将为您在下一个版本中寻找的内容添加支持。 您可以等待几个星期/月。 或者,您可以使用一个Polyfill作为ES6模块加载器:
- ES6模块加载器
- SystemJS
还有更多的图书馆可以在网上find,只需要检查哪一个能为你做这项工作,直到官方支持--module
with --target es6
到达。
UPDATE
tsconfig.json
{ "compilerOptions": { "target":"ES6", "moduleResolution": "classic", } }
- ES6支持与发电机
- 由于
"moduleResolution": "classic"
分辨率"moduleResolution": "classic"
没有import
东西发生转变"moduleResolution": "classic"