【问题标题】:tsconfig outfile with systemjs带有 systemjs 的 tsconfig 输出文件
【发布时间】:2016-10-20 15:45:27
【问题描述】:

我遇到了和这里完全相同的问题: SystemJS: loading build file

但是我收到网络错误,因为我假设 systemjs 正在尝试从网络下载 main,但它在网络上不存在,这是正确的,因为它位于已下载到浏览器的 buildjs 文件中

如何让 systemjs 只查看已下载的 buildjs 文件而不尝试通过网络下载?

【问题讨论】:

  • 第一个猜测:只有在包中分配的模块名称与源代码中 import 语句中的模块名称完全匹配时,SystemJS 才会从包中获取模块。
  • 是的,这是正确的,我打开它,它只说“main”而不是“app/main”之类的东西
  • System.register("main", ['@angular/platform-b​​rowser-dynamic', "app.module"], function(exports_20, context_20) {
  • 会不会是 angular/platform-b​​rowser-dynamic 没有被捆绑到 buidljs 中?只有应用程序特定的代码被捆绑?所以也许 main 由于依赖关系而失败?只是一个猜测,但我的 systemjs.config.js 中有 angular2
  • 出错的可能原因有很多,我可以一直猜测。下一个猜测:是否有将main 映射到 SystemJS 配置中的其他内容?顺便说一句,buidjs 文件中是否包含某些内容取决于您制作该文件的方式 - 如果您使用 typescript 进行操作,那么像 platform-b​​rowser-dynamic 这样的角度库肯定不存在。

标签: angular systemjs tsconfig


【解决方案1】:

所以看起来错误消息没有太大帮助,它可能更深层次。我在主模块的代码中放置了一个警告框,它弹出,所以这告诉我主模块正在执行。我发现是否与 moduleId: module.id / __moduleName 问题有关。如果您的模块执行失败,我猜它会尝试将其下载为备份策略。无论如何,我修复了我的编码问题,一切正常。

【讨论】:

    【解决方案2】:

    您不应同时使用 outfile 和 systemjs,因为它们的用途相同。单独构建您的 ts 文件并改用 systemjs builder。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 2016-06-19
      • 1970-01-01
      • 2012-03-08
      • 2017-10-27
      • 2019-10-06
      • 1970-01-01
      相关资源
      最近更新 更多