Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么SystemJS在寻找source-map-support.js?_Javascript_Typescript_Systemjs_Jspm - Fatal编程技术网

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

Javascript 为什么SystemJS在寻找source-map-support.js?,javascript,typescript,systemjs,jspm,Javascript,Typescript,Systemjs,Jspm,我在这里有我的全部设置: 我相信它很干净,但并不完美。实际上,它可以工作,但在index.html文件中,尝试切换这些注释: //System.import('./app/app'); System.import('./src/app.ts'); 基本上,我们可以直接加载app.ts,而不是使用编译后的JS(由Atom编辑器自动执行),但这不起作用。SystemJS正在寻找“SourceMapSupport.js”,但失败了。我不知道为什么我会需要这种依赖性,我相信我有一个配置问题(或其中许

我在这里有我的全部设置:

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

//System.import('./app/app');
System.import('./src/app.ts');
基本上,我们可以直接加载app.ts,而不是使用编译后的JS(由Atom编辑器自动执行),但这不起作用。SystemJS正在寻找“SourceMapSupport.js”,但失败了。我不知道为什么我会需要这种依赖性,我相信我有一个配置问题(或其中许多)

您可能会在这个项目中看到许多错误;)别犹豫告诉我


感谢您的帮助。

在typescript 2.1中,他们添加了对源映射支持的可选依赖项-typescript.js中有此函数:

      tryEnableSourceMapsForHost: function() {
        try {
          require('source-map-support').install();
        } catch (e) {}
      },
但是,SystemJS无法检测到它是可选的-为了使
require
在浏览器中工作,它扫描源代码以查找
require
调用,尝试加载所有必需的模块,但失败

您可以安装源映射支持模块,也可以通过将此行添加到
map
,将其映射到jspm.config.js中的
@empty

"source-map-support": "@empty",
然后您还需要将
defaultExtension:'ts'
添加到
src
包配置中,否则
import{AppModule}来自“/app.module”
将尝试加载
app.module.js

总之,jspm.config.js中更改的片段如下所示

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

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

对于src中的.ts文件,您有
loader:typescript
,以及
“typescript”:“npm:typescript@2.1.1“
在地图中。我不确定typescript是否应该用作systemjs的加载程序,我建议改为使用。@artem我试过了,实际上我在GitHub上提交了更改。。。然而,当我尝试时,我得到了完全相同的错误。@artem实际上我有两个问题,你提到的那个,然后我不得不手动添加源代码映射支持,方法是:jspm I--dev npm:source map support非常感谢,这是一个极好且非常完整的答案!太有用了!还有一个问题,是否建议使用@empty?这取决于-如果您打算坚持使用SystemJS,那么假设它将受到支持是相对安全的(最坏的情况是,您可以使用您想要的任何名称注册空模块,
@null
或其他任何名称,使用SystemJS API)。否则,如果您确信在浏览器中加载
源代码映射支持不会破坏编译,只需将其作为依赖项提供即可。插件typescript的开发人员通过删除对源代码映射支持的依赖项来进行了少量更新:)如果是的话,它应该为jspm用户修复-jspm现在意识到这种依赖性,并将在使用jspm安装typescript 2.1时安装它