系统JS没有加载模块

时间:2016-02-05 07:17:37

标签: javascript typescript angular systemjs

当我在使用Angular 2时,我遇到了一个奇怪的问题。

一切都运行良好一段时间,但看似随机的系统JS不能再找到模块......

我收到此错误消息:

GET http://localhost:9000/angular2/platform/browser.js 404 (Not Found) @ system.src.js:4891(anonymous function) @ system.src.js:4891
GET http://localhost:9000/angular2/core.js 404 (Not Found) @ system.src.js:4891
GET http://localhost:9000/angular2/router.js 404 (Not Found) @ system.src.js:4891
GET http://localhost:9000/angular2/http.js 404 (Not Found) @ system.src.js:4891
GET http://localhost:9000/angular2/core.js 404 (Not Found) @ system.src.js:4891
GET http://localhost:9000/angular2/http.js 404 (Not Found) @ system.src.js:4891
GET http://localhost:9000/angular2/src/facade/lang.js 404 (Not Found) @ system.src.js:4891
GET http://localhost:9000/angular2/router.js 404 (Not Found) @ system.src.js:4891

有时候,错误更少......

最奇怪的是,在等待一段时间并试图一遍又一遍地刷新页面之后,该应用程序神奇地再次开始工作!

我使用systemjs@0.19.20和angular2@2.0.0-beta.3(当时最新)。

带有SystemJS配置的index.html的脚本部分如下所示:

<script src="./node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="./node_modules/es6-shim/es6-shim.min.js"></script>
<script src="./node_modules/systemjs/dist/system.js"></script>
<script>
  //configure system loader
  System.config({
    defaultJSExtensions: true
  });
  //bootstrap the Angular2 application
  System.import('dist/app').catch(console.log.bind(console));
</script>
<script src="./node_modules/rxjs/bundles/Rx.js"></script>
<script src="./node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="./node_modules/angular2/bundles/http.dev.js"></script>
<script src="./node_modules/angular2/bundles/router.dev.js"></script>

有人认识到这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您的SystemJS似乎不正确:

您是否在HTML输入页面中使用了类似的内容:

<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="node_modules/angular2/bundles/router.dev.js"></script>
<script src="node_modules/angular2/bundles/http.dev.js"></script>

<script>
  System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    }
  });
  System.import('app/boot')
        .then(null, console.error.bind(console));
</script>

从我在HTTP调用中看到的内容,我猜你的SystemJS配置中有类似内容:

  System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      },
      angular2: {
        format: 'register',
        defaultExtension: 'js'
      }
    }
  });

答案 1 :(得分:0)

也许是一个很长的镜头,因为我没有足够的权限发表评论并要求提供更多信息。您是否尝试检查文件app.ts是否实际位于dist/app