打字稿AMD的目标解析为CommonJS的[复制](Typescript AMD Target Re

2019-09-26 05:40发布

这个问题已经在这里有一个答案:

  • RequireJS模块的打字稿编译生成线Object.defineProperty(出口“__esModule”,{值:真}); 如何摆脱它? 1个回答

我在我的项目tsconfig指定“AMD”的模块目标,但是当我的文件编译我得到的输出看起来更像CommonJS的。 例:

tsconfig:

{
    "compilerOptions": {
        "module": "amd",
        "target": "es5",
        "moduleResolution": "node",
        "sourceMap": false,
        "newLine": "LF",
        "baseUrl": ".",
        "lib": ["es5", "es2015.promise", "dom"]
    }
}

打字稿文件:

export function test() {
    console.log('Starting Up', '<--------------');
}

编译后的文件:

define(["require", "exports"], function (require, exports) {
    Object.defineProperty(exports, "__esModule", { value: true });
    function test() {
        console.log('Starting Up', '<--------------');
    }
    exports.test = test;
});

预计编译的文件:

define([], function () {
    function test() {
        console.log('Starting Up', '<--------------');
    }
    return { test: test };
});

这是一个的扔我离开了“出口”的对象。 这不应该对AMD的模块,只有一个返回语句是必要的。 是否有办法来纠正呢?

Answer 1:

不幸的是没有。 这是打字稿的AMD输出的形状,它是AMD兼容。 AMD提供了这个设施和打字稿使用它。



文章来源: Typescript AMD Target Resolving to CommonJS [duplicate]