首页 文章

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

提问于
浏览
0

有Angular 2应用程序,使用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

    您是否尝试删除 packages part而是全局使用 defaultJSExtensions

    像这样的东西:

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

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

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

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

相关问题