使用systemJs加载angular2库

使用systemJs加载angular2库,angular,systemjs,Angular,Systemjs,我在遵循Angular2的Angular2快速入门指南 他们利用systemJs加载应用程序 angular2、rx.js和angular2.dev.js通过脚本引用加载,而不是导入 是否仍要导入这些脚本 <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script> <script src="node_modules/systemjs/dist/system.s

我在遵循Angular2的Angular2快速入门指南 他们利用systemJs加载应用程序

angular2、rx.js和angular2.dev.js通过脚本引用加载,而不是导入

是否仍要导入这些脚本

    <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>

    <!-- 2. Configure SystemJS -->
    <script>
      System.config({
        packages: {        
          app: {
            format: 'register',
            defaultExtension: 'js'
          }
        }
      });
      System.import('app/main')
            .then(null, console.error.bind(console));
    </script>
  </head>

  <!-- 3. Display the application -->
  <body>
    <app>Loading...</app>
  </body>

System.config({
包:{
应用程序:{
格式:'寄存器',
defaultExtension:'js'
}
}
});
System.import('app/main')
.then(null,console.error.bind(console));
加载。。。

包括Angular2捆绑包,使用
System.register
方法直接注册其包

也就是说,您还可以使用以下配置将SystemJS配置为使用每个模块的文件逐个加载Angular2文件,但效率较低:

<script src="node_modules/es6-promise/dist/es6-promise.js"></script>
<script src="node_modules/es6-shim/es6-shim.js"></script>

<script src="node_modules/angular2/bundles/angular2-polyfills.min.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>

<script>
  System.config({
    defaultJSExtensions: true,
    map: {
      angular2: 'node_modules/angular2/src',
      rxjs: 'node_modules/rxjs'
    },
    packages: {
      app: {
        defaultExtension: 'js',
        format: 'register'
      },
      angular2: {
        defaultExtension: 'js',
      }
    }
  });
  (...)
</script>

System.config({
defaultJSExtensions:true,
地图:{
angular2:'node_modules/angular2/src',
rxjs:'node_modules/rxjs'
},
套餐:{
应用程序:{
defaultExtension:'js',
格式:“寄存器”
},
角度2:{
defaultExtension:'js',
}
}
});
(...)

在这两种情况下,都可以在应用程序中导入相应的模块(
angular2/*
rxjs/*
)。

为什么不从
node\u modules/angular2/bundles/angular2 polyfills.min.js
加载angular的polyfills?非常感谢@CosminAbabei指出这一点!你完全正确。我相应地更新了我的答案…此解决方案失败,出现以下错误“system.src.js:1085 GET”我注意到平台文件夹中没有browser.js文件对不起,它是
angular2:'node\u modules/angular2'
而不是
angular2:'node\u modules/angular2/src'