有Angular 2 app,使用typescript进行编码,使用SystemJS进行模块加载。
//sydtemjs.config.js
(function (global) {
System.config({
map: {
'normalizr': 'node_modules/normalizr/dist/src/index.js' //mapping normalizr library
},
packages: {
normalizr: {
defaultExtension: 'js'
}
}
index.js已成功加载,但它包含依赖项:
//node_modules/normalizr/dist/src/index.js
var _Entity = require('./schemas/Entity');
var _Array = require('./schemas/Array');
//etc
浏览器向base_path / node_modules / normalizr / dist / src / schemas / Array(不带js扩展名)发出请求,服务器返回404。
如何配置systemjs为内部模块附加js扩展?为什么defaultExtension不解决它?
答案 0 :(得分:0)
您是否尝试删除packages
部分,而是全局使用defaultJSExtensions
?
这样的事情:
{
defaultJSExtensions: true,
map: {
'normalizr': 'node_modules/normalizr/dist/src/index
}
}
答案 1 :(得分:0)
我会避免使用defaultJSExtensions的解决方案,因为在较新版本的systemjs中不推荐使用此属性。
您需要映射规范化器的所有依赖关系才能使其正常工作,否则,systemjs将无法知道如何加载。
在这种情况下,您可能最好使用jspm自动创建配置。