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