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

标签 javascript ecmascript-6 babeljs systemjs

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

ma​​in.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 注册一个新的“存储库”,它指向文件系统库的位置。为此,我们将以下行添加到我们的 config.js

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

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

关于javascript - systemJS 的相对动态加载,使用 ES6/Babel 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29358499/

相关文章:

javascript - 在 es6 map 上调用 `Array.prototype.some()` 的更好方法

javascript - 使 webpack 库输出与 babel 6 兼容

javascript - image.onload 后变量值无法使用?

javascript - 无法将 Metro UI CSS 插入 SharePoint Web 部件

javascript - 对象不支持 babel 变换后的 new x() 操作

javascript - 如何在 Angular 指令中使用 React 自定义包

angularjs - Webpack - Typescript 和 Babel "Module build failed: SyntaxError"

Javascript 正则表达式匹配出现空值

javascript - 搜索引擎,如谷歌搜索

javascript - 将元素数组位置更改为顶部