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

时间:2015-03-31 00:15:09

标签: javascript ecmascript-6 babeljs systemjs

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

main.js

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

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

  

获取http://localhost:9000/dist/a.js 404(未找到)

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

是否有任何示例或最佳做法如何执行此操作?拜托,谢谢你。

1 个答案:

答案 0 :(得分:1)

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

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

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