您好我为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错误:
获取http://localhost:81/app/boot 404(未找到)
但如果我将其更改为以下内容:
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 /在app / boot等导入语句中引用DesktopModules / RegentDMS / app的绝对路径(表示DesktopModules / RegentDMS / app / boot)。 JS)
由于
所以我按照建议将./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(未找到)
将地图声明移动到配置对象,如下所示:
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));
答案 0 :(得分:5)
正如@Langley在评论中建议的那样,您应该使用app
,而不是./app
(名称不是路径),并将map
定义从packages
对象移至{{ 1}}对象。
map选项...允许您将模块别名映射到位置或包:
https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#map