gpt4 book ai didi

angular - systemjs.config.js在angular 2封装结构中做了什么?

转载 作者:太空狗 更新时间:2023-10-29 16:48:18 26 4
gpt4 key购买 nike

还有 var map、packages、var config 在这里做什么我在这里有点困惑他们做了任何配置吗?我看到了每个项目,我发现他们到处都放了这个文件。这个功能是做什么的?

 (function(global) {

// map tells the System loader where to look for things
var map = {
'app': 'app', // 'dist',
'rxjs': 'node_modules/rxjs',
'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
'@angular': 'node_modules/@angular',
'primeng': 'node_modules/primeng'
};

// packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'boot.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
'angular2-in-memory-web-api': { defaultExtension: 'js' },
'primeng': { defaultExtension: 'js' }
};

var packageNames = [
'@angular/common',
'@angular/compiler',
//
];

// add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
packageNames.forEach(function(pkgName) {
packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
});

var config = {
map: map,
packages: packages
}

// filterSystemConfig - index.html's chance to modify config before we register it.
if (global.filterSystemConfig) { global.filterSystemConfig(config); }

System.config(config);

})(this);

最佳答案

它允许配置 SystemJS 以加载使用 TypeScript 编译器编译的模块。对于匿名模块(每个 JS 文件一个模块),它允许将模块名称映射到实际包含模块 JavaScript 代码的 JS 文件。

这是一个例子。如果我尝试导入名为 app/test 的模块,SystemJS 将执行以下操作:

  • 尝试找到预注册的模块(使用 System.register('app/test', ...
  • 如果没有,它将查看其配置以构建要执行的请求以加载相应的文件:
    • app有一个map条目
    • app 有一个 packages 条目,defaultExtension = js
  • 请求将是 http://localhost:3000/app/test.js。如果你有 map: { app: dist },请求将是 http://localhost:3000/dist/test.js

关于angular - systemjs.config.js在angular 2封装结构中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37439855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com