2016-11-11 71 views
1

我在这里设置了我的整个设置: https://github.com/jordymeow/meowbs-2016为什么SystemJS正在寻找source-map-support.js?

我相信它很干净,但并不完美。正因为如此,它的工作原理,但在index.html文件,尝试切换这些意见:

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

基本上,而是采用编译JS(由凌编辑器自动执行),我们可以加载的应用程序。直接,但不起作用。 SystemJS正在寻找“source-map-support.js”并且失败。我不知道为什么我需要这种依赖关系,我相信我有一个配置问题(或其中的许多问题)。

你可能会在这个项目中看到许多错误的东西;)不要犹豫,告诉我。

感谢您的帮助。

+0

你'装载机:typescript'在SRC .ts文件和' “打字稿”:“故宫:[email protected] .1“在地图上。我不知道打印稿是否应该作为systemjs的加载程序工作,我建议使用[typecript插件for systemjs](https://github.com/frankwallis/plugin-typescript/)代替。 – artem

+0

@artem我试过了,而且我确实在GitHub上进行了更改......但是,当我尝试时,我遇到了完全相同的错误。 – TigrouMeow

+0

@artem其实我有两个问题,你提到的,然后我必须手动添加源地图支持,这样:jspm我--dev npm:源地图支持 – TigrouMeow

回答

1

在打字稿2.1,他们增加了可选的依赖于源地图的支持 - 有这个功能typescript.js:

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

然而,SystemJS无法检测它是可选的 - 为了使require在浏览器中工作时,会扫描require调用的源代码,尝试加载所有需要的模块并失败。

可以安装源地图支持模块,或者你可以简单地加入这行来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", 
+0

非常感谢,这是一个很好的和非常完整的答案!帮助如此之多!还有一个问题,是使用@empty推荐的? – TigrouMeow

+0

这取决于 - 如果你要坚持SystemJS,那么假设它将被支持是相对安全的(最糟糕的情况是,你可以使用SystemJS API以任何你想要的名称,@ null或任何名称注册空模块)。否则,如果您确信在浏览器中加载'source-map-support'不会中断编译,只需将其作为依赖项提供即可。 – artem

+0

小小的更新,插件打字机的开发实​​际上通过消除对源图支持的依赖来修复它:) – TigrouMeow