Config Map 包名以命名空间+冒号为前缀
Config Map package name prefixed with namespace + colon
我在 Angular2 启动项目的 System.Config.JS 中看到一个例子,它喜欢下面:
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
'app': 'app',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
// other libraries
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'
},
我的问题是:map 似乎使用配置路径的别名,如 'npm',并以冒号“:”作为后缀,然后将此字符串添加到包文件名前,如 npm:@angular/forms/bundles/forms .umd.js 在示例中。
但是我查看了 SystemJS 的 config API and RequireJS's config,但我没有找到任何关于此用法的文档。有没有人曾经从事过这方面的工作,并且可以为此提供一些有用的 link 或文档。提前谢谢你。
文档的相关部分是这样的:https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#paths
文档说:
Paths allow creating mappings that apply after map
configuration
这就是 Angular2 配置所做的。冒号“:”没有特殊含义,只是为了更明显地表明所有模块都来自npm
.
例如当您导入模块时 @angular/core
:
由于 map
选项,@angular/core
映射到 npm:@angular/core/bundles/core.umd.js
。
由于 paths
选项,npm:@angular/core/bundles/core.umd.js
映射到 node_modules/@angular/core/bundles/core.umd.js
,其中 npm:
被替换为 node_modules/
。
你可以使用除 npm:
之外的任何其他字符串,我会以同样的方式工作。
我在 Angular2 启动项目的 System.Config.JS 中看到一个例子,它喜欢下面:
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
'app': 'app',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
// other libraries
'rxjs': 'npm:rxjs',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'
},
我的问题是:map 似乎使用配置路径的别名,如 'npm',并以冒号“:”作为后缀,然后将此字符串添加到包文件名前,如 npm:@angular/forms/bundles/forms .umd.js 在示例中。
但是我查看了 SystemJS 的 config API and RequireJS's config,但我没有找到任何关于此用法的文档。有没有人曾经从事过这方面的工作,并且可以为此提供一些有用的 link 或文档。提前谢谢你。
文档的相关部分是这样的:https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#paths
文档说:
Paths allow creating mappings that apply after
map
configuration
这就是 Angular2 配置所做的。冒号“:”没有特殊含义,只是为了更明显地表明所有模块都来自npm
.
例如当您导入模块时 @angular/core
:
由于
map
选项,@angular/core
映射到npm:@angular/core/bundles/core.umd.js
。
由于 npm:@angular/core/bundles/core.umd.js
映射到node_modules/@angular/core/bundles/core.umd.js
,其中npm:
被替换为node_modules/
。
paths
选项,你可以使用除 npm:
之外的任何其他字符串,我会以同样的方式工作。