我有一个JavaScript应用,该应用使用requireJS加载其组件。这是它如何工作的简单示例:
require(['eventHandler'], function(eventHandler)) {
... // app code that uses the eventHandler in some way
}
它使用了多个组件,但让我们简化一下,并假装它只有这个。
在我们公司开发的较大的Web应用程序的两个部分中,我的miniapp有两个不同的“版本”。为了提高可重用性,我提出了以下想法:
我有2个require配置文件,它们定义了应用程序需要运行的模块的位置,并且我可以定义每种情况下应使用的组件集。
标准配置:
require.config({
paths : {
// components
eventHandler : 'lib/eventHandlers/standardEventHandler',
...
});
特殊配置:
require.config({
paths : {
// components
eventHandler : 'lib/eventHandlers/specialEventHandler',
...
});
加载应用程序时,请执行以下操作:
<script data-main="@standardConfigFile" src="/lib/require/require.js"
type="text/javascript" charset="UTF-8"></script>
这就是我可以为每种配置加载不同组件的方式。目前,我有2种不同的产品,但我希望很快增加该数量。
现在我们要切换到具有本机导入和导出功能的es6模块,我想知道如何将当前体系结构迁移到本机js导入和导出功能,并且文档中没有涵盖此特定问题。
有什么想法吗?
答案 0 :(得分:0)
我找到了答案,实际上非常简单。我只需要制作一个“进口商”模块。
在我的主要组件中,我将做:
import * as components from '@standardComponentsLoader.js';
然后在standardComponentsLoader中完成所有导入:
import * as eventHandler from '@standardEventHandler.js';
export { eventHandler };