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"