首页 文章

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

提问于
浏览
6

我正在使用带有--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 . 谢谢!

1 回答

  • 3

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

    有更多的库像上面提供的那些库只是检查哪一个为你完成工作,直到 --module--target es6 的官方支持到达 .

    更新

    tsconfig.json

    {
      "compilerOptions": {
        "target":"ES6",
        "moduleResolution": "classic",
      }
    }
    
    • ES6支持发电机

    • 没有 import 由于 "moduleResolution": "classic" 而发生的事情

相关问题