SystemJS:如何为内部依赖项添加文件扩展名?

时间:2017-05-23 17:04:04

标签: angular systemjs

有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不解决它?

2 个答案:

答案 0 :(得分:0)

您是否尝试删除packages部分,而是全局使用defaultJSExtensions

这样的事情:

{
  defaultJSExtensions: true,
  map: {
    'normalizr': 'node_modules/normalizr/dist/src/index
  }
}

答案 1 :(得分:0)

我会避免使用defaultJSExtensions的解决方案,因为在较新版本的systemjs中不推荐使用此属性。

您需要映射规范化器的所有依赖关系才能使其正常工作,否则,systemjs将无法知道如何加载。

在这种情况下,您可能最好使用jspm自动创建配置。