Angular2 -- SystemJS解析


文 | Yeaseon
SystemJS

SystemJS是一个通用的动态模块加载器,Angular2就是通过SystemJS加载所需的模块。

SystemJS 配置函数

通过System.config函数进行配置:

System.config({
    configA: {},
    configB: 'value'
});
SystemJS 可配置项
  • babelOptions
  • bundle
  • defaultJSExtensions
  • depCache
  • map
  • meta
  • packages
  • paths
  • traceurOptions
  • transpiler
  • typescriptOptions

在Angular2的‘英雄联盟’教程中,我们的systemjs.config.js脚本中只配置了mappackages两项,其他配置选项详情

map

map tells the System loader where to look for things

以下是Angular2中的配置:

var map = {
    'app':                        'app', // 'dist',
    '@angular':                   'node_modules/@angular',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    'rxjs':                       'node_modules/rxjs'
  };

packages

packages tells the System loader how to load when no filename and/or no extension

以下是Angular2中的配置:

var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
  };
  • main: package的主要入口
  • defaultExtension:默认扩展名

然后完成对于SystemJS的配置:

var config = {
    map: map,
    packages: packages
  };
System.config(config);

System.import告诉SystemJS引入main文件,main文件是Angular启动应用的地方。
在根目录index.html

<script>
      System.import('app')
             .catch(function(err){ 
                console.error(err); 
             });
</script>

并没有看到main相关的字眼,只有一个app被引入,这就要回到我们上面提到的packages配置项,SystemJS会自动寻找./app/main.j
s
,这样我们的应用就可以在main中启动了。

转载:http://www.jianshu.com/p/db4be331b026

个人建了前端学习群,旨在一起学习前端。纯净、纯粹技术讨论,非前端人员勿扰!入群加我微信iamaixiaoxiao。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值