使用 systemJS 的相对动态加载,使用 ES6/Babel 语法

Relative Dynamic Loading with systemJS, using ES6/Babel syntax

我有一个用纯 ES6 编写的模块,我想在单独的 Web 应用程序中利用它。该模块的入口点是 main.js 并包含以下内容:

main.js

export { A } from './a';
export { B } from './b';
export { C } from './c';

当我使用 systemJS 导入此 main.js 时,它会尝试解析 Web 应用程序本地的这些依赖项,而不是模块。

GET http://localhost:9000/dist/a.js 404 (Not Found)

我看到已经支持 relative dynamic loading,但它涉及将一个额外的函数传递给 System.import 函数,我没有使用它——我使用的是 ES6 语法。

是否有关于如何执行此操作的任何示例或最佳实践?请谢谢。

最好的方法是破解*您的 config.js 文件。我们需要向 systemjs 注册一个新的 'repository' 指向文件系统库的位置。为此,我们将以下行添加到 config.js.

System.config({
  "map": {
    ...
    "lib": "path/to/lib/main"
    ...
  }
});

当 systemjs 尝试加载 lib 时,它会找到映射条目并加载 lib 相对于该位置的所有依赖项。如果库位于不合理的遥远位置,在您的应用程序中创建库的目录符号链接可能会很有用。