从requirejs迁移到es6导入

时间:2018-09-20 14:43:46

标签: javascript require es6-modules

我有一个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导入和导出功能,并且文档中没有涵盖此特定问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案,实际上非常简单。我只需要制作一个“进口商”模块。

在我的主要组件中,我将做:

import * as components from '@standardComponentsLoader.js';

然后在standardComponentsLoader中完成所有导入:

import * as eventHandler from '@standardEventHandler.js';

export { eventHandler };