样本中的ES6样式导入

时间:2016-04-03 23:20:31

标签: javascript node.js typescript

我想使用import语法使用typescript从节点中的node_modules导入外部模块。我已经将类型定义添加到了我的项目中,因此我可以调用install()而不会输入错误的文字(我知道我可以执行any强制转换,但我显然希望尽可能保留所有类型)。

/// <reference path="typings/source-map-support/source-map-support.d.ts" />

import * as sourceMapSupport from 'source-map-support';
sourceMapSupport.install();

但是当输出我的代码时,它会返回以下内容:

/// <reference path="../typings/source-map-support/source-map-support.d.ts" />
//# sourceMappingURL=server.js.map

有人可以向我解释为什么它不会在生成的js文件中输出require吗?我也在编译ES6,因为我需要访问async&amp; amp;等待关键字 - 我的tsconfig.json如下。

{
   "compilerOptions": {
   "target": "es6",
   "sourceMap": true,
   "outFile": "build/server.js"
},
   "exclude": [
       "node_modules",
       "typings"
   ]
}

1 个答案:

答案 0 :(得分:2)

  

有人可以向我解释为什么它不会在生成的js文件中输出要求

因为您在tsconfig outFile中使用"outFile": "build/server.js"。如果您使用的是模块格式,请不要使用outFile。这是捆绑商的工作,例如的WebPack。

{
   "compilerOptions": {
   "target": "es6",
   "sourceMap": true,
   "module": "commonjs"
},
   "exclude": [
       "node_modules",
       "typings"
   ]
}

PS

注意:此处有边缘情况,例如systemjs / amd支持outFile。但这不太可能与此无关。