我有一个用TypeScript编写的AngularJS 2.0应用程序,它使用SystemJS加载器。当我运行应用程序时,我收到以下404错误:
404 GET /node_modules/ponyfill/package.json
据我所知,没有模块依赖ponyfill
。我有其他类似设置的AngularJS应用程序正常工作。但我无法弄清楚这款应用与众不同之处。你会如何调试这样的问题?有没有工具?
P.S。我找到了一个名为SystemJS Debugger的工具,但文档不是很清楚。
P.S。我的SystemJS配置如下所示:
System.config({
"defaultJSExtensions": true,
"packageConfigPaths": [
"/node_modules/*/package.json"
],
"paths": {
"main": "/main",
"angular2/*": "/angular2/*",
"rxjs/*": "/rxjs/*",
"app/*": "/app/*",
"*": "/node_modules/*"
},
"packages": {
"angular2": {
"defaultExtension": false
},
"rxjs": {
"defaultExtension": false
}
}
});
修改
我发现上面配置中的packageConfigPaths
导致了问题。它是使SystemJS变得混乱并在运行时开始寻找package.json
文件的那个。如果我删除它,问题就会消失。我没有在任何地方找到packageConfigPaths
。任何人都知道它的作用。我只是从模板中复制它。
修改2
我已将我的完整应用程序放在Github上,以便任何人都可以重现此问题。存储库是https://github.com/archfirst/angular2-minimal-app。应用程序应该使用签入的代码完美地构建。要重现此问题,只需编辑index.html并取消注释SystemJS配置的packageConfigPaths
和paths
属性。
答案 0 :(得分:1)
看起来像拼写错误,尝试将ponyfill重命名为polyfill
答案 1 :(得分:0)
我最近遇到了类似的问题。解决方案(从Angular RC 1开始)包括rxjs AFTER 系统:
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.min.js"></script>
&#13;
重新安排这些脚本标记后,问题得以解决。希望这会有所帮助。