为什么 SystemJS 正在寻找 source-map-support.js?

Why is SystemJS is looking for source-map-support.js?

我的整个设置在这里: https://github.com/jordymeow/meowbs-2016

我相信它很干净,但并不完美。实际上,它可以工作,但在 index.html 文件中,尝试切换这些注释:

//System.import('./app/app');
System.import('./src/app.ts');

基本上,我们可以直接加载 app.ts 而不是使用编译后的 JS(由 Atom 编辑器自动执行),但这不起作用。 SystemJS 正在寻找 "source-map-support.js" 但失败了。我不确定为什么我需要这种依赖性,我相信我有一个配置问题(或许多问题)。

您可能还会在这个项目中看到很多错误 ;) 不要犹豫,告诉我。

感谢您的帮助。

在 typescript 2.1 中,他们添加了对 source-map-support 的可选依赖 - typescript.js 中有这个函数:

      tryEnableSourceMapsForHost: function() {
        try {
          require('source-map-support').install();
        } catch (e) {}
      },

但是,SystemJS 无法检测到它是可选的 - 为了使 require 在浏览器中工作,它扫描源代码以进行 require 调用,尝试加载所有必需的模块,并且失败。

您可以安装 source-map-support 模块,或者您可以通过将此行添加到 map 来简单地将其映射到 jspm.config.js 中的 special module named @empty

"source-map-support": "@empty",

然后你还需要添加defaultExtension: 'ts'src包配置,否则import { AppModule } from "./app.module";会尝试加载app.module.js

总的来说,jspm.config.js中改变的片段看起来像

    "src": {
      "defaultExtension": "ts",
      "meta": {
        "*.ts": {
          "loader": "plugin-typescript"
        }
      }
    }
  },

  map: {
    "source-map-support": "@empty",