如何调试SystemJS问题?

时间:2016-04-30 12:30:20

标签: typescript angular systemjs

我有一个用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配置的packageConfigPathspaths属性。

2 个答案:

答案 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;
&#13;
&#13;

重新安排这些脚本标记后,问题得以解决。希望这会有所帮助。