繁体   English   中英

es6模块与节点和声标志下的打字稿的commonjs

[英]es6 modules to commonjs with typescript under node harmony flag

我正在使用带有--harmony标志下的节点的TypeScript(1.6),所以我想将es6模块语法转换为commonjs。

据我所知,我不能用TypeScript 1.6做到这一点。 如果我将目标设置为es6,将模块设置为commonjs,则会出现TypeScript错误 -

在定位“ES6”或更高版本时,无法将模块编译为“commonjs”,“amd”,“system”或“umd”。

为什么TypeScript不会编译为带有ES6目标的commonjs? 我想很多人都想这样做,因为节点还不支持ES6模块。

我认为新的moduleResolution编译器选项可能会解决这个问题,但它似乎没有做任何事情。

目前,我不得不使用babel将模块语法转换为commonjs,但我想从我的构建中删除babel,以便我可以利用源映射。

有没有办法实现这个目标? 注意:我不想转发到ES5。 我希望我的JS在和声标志下作为ES6运行。 谢谢!

TypeScript团队将在下一版本中添加对您要查找的内容的支持。 你可以等几个星期/几个月。 或者,您可以将Polyfill用于ES6模块加载器:

有更多的库,比如上面提供的那些库只是检查哪一个为你做的工作,直到官方支持--module with- --target es6到来。

UPDATE

tsconfig.json

{
  "compilerOptions": {
    "target":"ES6",
    "moduleResolution": "classic",
  }
}
  • ES6支持发电机
  • 没有因"moduleResolution": "classic" moduleResolution”而导致的import内容"moduleResolution": "classic"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM