如何禁用TypeScript Object.defineProperty(exports," __ esModule",{value:true})?

时间:2017-07-05 03:56:29

标签: node.js typescript ecmascript-6

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

如何删除第二行?

1 个答案:

答案 0 :(得分:-4)

  

但是我的代码在Nodejs上运行,我不是在写一个libaray,所以我认为这条线对我来说是不必要的。我该如何禁用它

工作正常。所以不要删除它。把它想象成"use strict"。它不是 neccessary 但它的好处。

存在允许交织器之间的互操作(打字稿/ babel /其他未来的)。