使用 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
相对于该位置的所有依赖项。如果库位于不合理的遥远位置,在您的应用程序中创建库的目录符号链接可能会很有用。
我有一个用纯 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
相对于该位置的所有依赖项。如果库位于不合理的遥远位置,在您的应用程序中创建库的目录符号链接可能会很有用。