【发布时间】:2017-07-05 12:06:31
【问题描述】:
ts 编译器在每个文件中发出这一行:
Object.defineProperty(exports, "__esModule", { value: true });
但是我的代码是在 Nodejs 上运行的,我不是在写 libaray,所以我认为这行对我来说是不必要的。我怎样才能禁用它? 我的编译器选项是:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"allowJs": true,
"sourceMap": true,
"outDir": "build",
"moduleResolution": "Node",
"lib": ["es6"]
}
}
比如编译这个ts文件:
function add(a: number, b: number): number {
return a + b
}
export { add }
我明白了:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function add(a, b) {
return a + b;
}
exports.add = add;
//# sourceMappingURL=App.js.map
如何删除第二行?
【问题讨论】:
-
没有必要。它用于检查如何导入包(即导入默认导出)。
-
@AndrewLi 那么检查是由 Node.js 完成的吗?
-
嗯,不。它适用于 ES6 模块。当您在 ES2015 中导入一个模块,并且该代码被转译为 ES5 时,导入者必须检查该模块是否为 ES6 模块并相应地导入。
-
@AndrewLi 知道了:) 谢谢
标签: node.js typescript ecmascript-6