首页 > 解决方案 > 使用 SystemJS 时来自 unpkg 的 HTTP 404

问题描述

我目前正在使用 SystemJS 在运行时动态导入自定义模块作为插件系统的一部分。我已经成功地进行了初始导入,但是,当我尝试从https://unpkg.com/导入依赖包时,我的方法很快就失败了。

我已经将一个简单的、孤立的示例上传到Plnkr来演示我的问题,希望有人能够帮助我找出原因和后续解决方案。

SystemJS.config({
  paths: {
    'npm:': 'https://unpkg.com/'
  },
  map: {
    'rxjs': 'npm:rxjs'
  }
});

SystemJS.import('rxjs')
  .then(function () {
      console.log('rxjs has been loaded');
  })
  .catch(function (error) {
      console.error(error);
  });

运行时,如果您查看控制台输出或网络跟踪(我也将一些输出写入网页),您将看到一系列 GET 请求到 unpkg 服务器下载我认为是 rxjs 所需的包(我在示例中尝试导入的包以演示该问题)。我尝试将它依赖的内部库重新映射到不返回 404 的不同 URL,但这似乎没有任何效果。我也尝试过手动浏览控制台输出中的路径,我可以看到 unpkg 确实找不到它们。所以我猜想在 SystemJS 中触发的依赖引用和 unpkg 提供的路径存在不匹配。

我是 SystemJS 的新手,所以这可能只是我的一个误解。任何帮助,将不胜感激。

标签: javascripthtmlrxjssystemjsunpkg

解决方案


您可以尝试将其直接绑定到索引文件:

{ map: { 'rxjs': 'npm:rxjs/index', 'rxjs/*': 'npm:rxjs' } }

用你的 Plunkr 例子为我工作。


推荐阅读