调试SystemJS模块加载?

30

我非常难以理解这些模块,并需要一种调试问题的方式。是否有一种使用SystemJS列举模块及其导出项的方法?

配置文件看起来像是一片文档不全的雷区。对于提供捆绑包的模块(如“RxJs”),如果我在脚本标记中包含了捆绑包,或者尝试使用SystemJS配置加载它,我如何知道我已加载的内容中应该找到什么,以及它在哪里?例如,我可以通过将 node_modules/rxjs 复制到 `wwwroot/libs/rxjs' 并使用以下代码来使rxjs正常运行:

System.config({
    map: {
        'rxjs': 'lib/rxjs'
    },
    packages: {
        'rxjs': { defaultExtension: 'js' }
    }

这似乎是加载每个单独文件。现在假设我使用脚本标签来加载rxjs捆绑包。我该如何确定捆绑包是否有我需要的模块?在SystemJS中是否有一种方法可以查看它是否使用了捆绑包以及它可以解决什么问题?


2
很有趣,我发现这个问题是因为我也无法成功加载 RxJS。 - theblang
3
在试图弄清楚为什么会出现“GET http://localhost:3000/traceur 404 (未找到)”时,我发现了这个。 - Brad Kent
1
我已经写了一个关于配置文件的解释,以及SystemJS如何使用它来确定在哪里找到模块的文章。在此之前,我也曾苦苦思索过它在做什么,以及为什么会出现404错误 - https://dev59.com/WVoU5IYBdhLWcg3wc2xW#48780734 - Chris Halcrow
1个回答

1

System.entries 允许您检索 System 注册表中的所有模块。每个值都将是一个包含两个值的数组:一个键和该模块。

for (const [id, ns] of System.entries()) {
      console.log(id); // 'http://localhost/path-to-file.js'
      console.log(ns); // { exportName: 'value' }
    };

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接