作者:aaaaaa师太_667 | 来源:互联网 | 2023-02-03 12:05
我有一个遗留的JS文件,用以下RequireJS(AMD)模块表示法编写:
define('mymodule', [], function(){
// ... bla bla bla
return {
calculate: function() { return 1 + 1; }
};
});
我正在从使用RequireJS的另一个(遗留)项目导入此文件,因此 - 我无法更改使用的模块定义.
我想在用TypeScript编写的Angular Cli(Angular 4.x)应用程序中导入它.
由于Angular Cli使用Webpack 2来构建支持AMD的项目,我想我可以像这样导入它:
import * as MyModule from './mymodule.js';
...但是这不起作用,它会触发一个mymodule.js
不是模块的错误.
任何想法(或解决方法)如何导入此旧模块?
1> Julia Passyn..:
我能够加载amd模块.
这是TS:
import * as MyModule from './mymodule.js';
console.log('my value is', MyModule.value);
mymodule.js文件:
define(["require", "exports"], function(require, exports){
exports.value = "aaa";
});
并在tsconfig.js
"allowJs": true
更新:
您可以使用webpack提供的System.import.
declare var System: any;
System.import('./mymodule.js')
.then(MyModule=>console.log(MyModule.value));
添加"declare var System:any;"