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

3
我有一个用纯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 (未找到)

我已经看到有支持相对动态加载的方法了,但是它需要向System.import函数传递一个额外的函数,而我正在使用ES6语法。
请问是否有任何示例或最佳实践来解决这个问题?谢谢。
1个回答

1
最佳方法是黑客您的config.js文件。我们需要在systemjs中注册一个指向文件系统库位置的新“存储库”。为此,我们将以下行添加到我们的config.js中。
System.config({
  "map": {
    ...
    "lib": "path/to/lib/main"
    ...
  }
});

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

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