由于amdefine,Typescript生成的代码无法运行

我正在使用v10.8.0和Typescript 3.2.1编写NodeJS应用程序

TS生成JS代码很好,但由于以下错误,代码无法执行:

amdefine with no module ID cannot be called more than once per file

我可以看到错误来自amdefine包,但它实际上是由似乎使用AMD模块的其他包触发的 .

我知道在问题代码中添加这样的东西可以解决这个问题:

if (typeof define !== 'function') {
    var define = require('amdefine')(module)
}

但我显然无法编辑第三方代码..

有没有更好的方法使Node与AMD模块一起工作?

TS目标是ES2016,它使用commonjs模块 . 这之前工作得很好 . 但是现在我已经拥有了这些基于AMD的依赖项,一切都被打破了 .

任何帮助,将不胜感激!

提前致谢 .

回答(1)

2 years ago

解决了 .

Amdefine具有拦截功能,可自动将上述代码添加到所有AMD模块 . 这是实验性的,但似乎有效 .

require('amdefine/intercept');

更多信息here