无法让 MAP 在 system.config 个 SystemJS 包中工作
can not get MAP to work within system.config packages for SystemJS
您好,我为 systemJS 设置了以下配置:
System.config({
packages: {
//sets the root path of the Angular2 App
'DesktopModules/RegentDMS/app': {
//module format expected in application, register = System.register or System.registerDynamic compatibility module format
format: 'register',
//default file extension for paths
defaultExtension: 'js',
map: {'./app' : './DesktopModules/RegentDMS/app'}
},
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
默认扩展工作正常,但我在控制台中收到 404 错误:
GET http://localhost:81/app/boot 404 (Not Found)
但是如果我把它改成下面这样:
System.config({
packages: {
//sets the root path of the Angular2 App
'DesktopModules/RegentDMS/app': {
//module format expected in application, register = System.register or System.registerDynamic compatibility module format
format: 'register',
//default file extension for paths
defaultExtension: 'js'
},
}
});
System.import('/DesktopModules/RegentDMS/app/boot.js')
.then(null, console.error.bind(console));
那么它确实起作用了。
问题:
如何设置 MAP 设置,以便我可以使用简写 app/ 在导入语句中引用 DesktopModules/RegentDMS/app 的绝对路径,如 app/boot(意思是 DesktopModules/RegentDMS/app/boot.js)
谢谢
编辑#1:
所以我按照建议将 ./app 更改为 app 并尝试了以下两种方法:
map: { 'app': './DesktopModules/RegentDMS/app' }
map: { app: './DesktopModules/RegentDMS/app' }
这在使用以下任何导入语句时不起作用:
System.import('app/boot')
System.import('./app/boot')
两者都出现以下错误:
http://localhost:81/app/boot 404 (Not Found)
解决方案:
像这样将地图声明移动到配置对象:
System.config({
packages: {
//sets the root path of the Angular2 App
'DesktopModules/RegentDMS/app': {
//module format expected in application, register = System.register or System.registerDynamic compatibility module format
format: 'register',
//default file extension for paths
defaultExtension: 'js'
}
},
map: { 'app': './DesktopModules/RegentDMS/app' }
});
System.import('app/boot')
.then(null, console.error.bind(console));
正如@Langley 在评论中建议的那样,您应该使用 app
,而不是 ./app
(名称而非路径),并将 map
定义从 packages
对象移动到config
对象。
The map option ... allows you to map a module alias to a location or package:
https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#map
您好,我为 systemJS 设置了以下配置:
System.config({
packages: {
//sets the root path of the Angular2 App
'DesktopModules/RegentDMS/app': {
//module format expected in application, register = System.register or System.registerDynamic compatibility module format
format: 'register',
//default file extension for paths
defaultExtension: 'js',
map: {'./app' : './DesktopModules/RegentDMS/app'}
},
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
默认扩展工作正常,但我在控制台中收到 404 错误:
GET http://localhost:81/app/boot 404 (Not Found)
但是如果我把它改成下面这样:
System.config({
packages: {
//sets the root path of the Angular2 App
'DesktopModules/RegentDMS/app': {
//module format expected in application, register = System.register or System.registerDynamic compatibility module format
format: 'register',
//default file extension for paths
defaultExtension: 'js'
},
}
});
System.import('/DesktopModules/RegentDMS/app/boot.js')
.then(null, console.error.bind(console));
那么它确实起作用了。
问题:
如何设置 MAP 设置,以便我可以使用简写 app/ 在导入语句中引用 DesktopModules/RegentDMS/app 的绝对路径,如 app/boot(意思是 DesktopModules/RegentDMS/app/boot.js)
谢谢
编辑#1:
所以我按照建议将 ./app 更改为 app 并尝试了以下两种方法:
map: { 'app': './DesktopModules/RegentDMS/app' }
map: { app: './DesktopModules/RegentDMS/app' }
这在使用以下任何导入语句时不起作用:
System.import('app/boot')
System.import('./app/boot')
两者都出现以下错误:
http://localhost:81/app/boot 404 (Not Found)
解决方案:
像这样将地图声明移动到配置对象:
System.config({
packages: {
//sets the root path of the Angular2 App
'DesktopModules/RegentDMS/app': {
//module format expected in application, register = System.register or System.registerDynamic compatibility module format
format: 'register',
//default file extension for paths
defaultExtension: 'js'
}
},
map: { 'app': './DesktopModules/RegentDMS/app' }
});
System.import('app/boot')
.then(null, console.error.bind(console));
正如@Langley 在评论中建议的那样,您应该使用 app
,而不是 ./app
(名称而非路径),并将 map
定义从 packages
对象移动到config
对象。
The map option ... allows you to map a module alias to a location or package:
https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#map