我正在使用TypeScript生成一个outFile
来编译我的模块,并加载了SystemJS。当我按照documentation on loading bundles的建议关注this SO answer时,出现错误:
Uncaught (in promise) Error: Module instantiation did not call an anonymous or correctly named System.register.
Instantiating http://localhost:50001/Content/js/app.js
Loading app.js
at vendor.js?v=c419d08…:4
以下是我的index.html文件中的安装脚本:
SystemJS.import("/Content/js/app.js").then(function (mod) {
return SystemJS.import("admin/js/startup");
});
app.js
看起来像这样:
System.register("shared/js/utilities", [], function (exports_1, context_1) {
...
});
System.register("admin/js/startup", ["shared/js/utilities"], function (exports_2, context_2) {
...
});
我的tsconfig.json
,如果有帮助:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"module": "system",
"outFile": "app.js"
},
"compileOnSave": true,
"exclude": [
"node_modules",
"wwwroot"
]
}
更新:我一直在使用systemjs/dist/system-production.js
,因为the documentation表明模块已经转换为System.register
格式,这是由TypeScript完成的,可以是由生产装载程序加载。如果我切换到使用systemjs/dist/system.js
,我不会收到错误。如果我已经使用System.register
格式化模块,我仍然不知道如何从生产加载程序中获取此错误。