如何修复汇总创建的导出变量名称?

时间:2019-05-15 09:31:13

标签: javascript rollupjs dynamic-import

我正在使用汇总来捆绑应用程序所需的所有JS代码。我们在应用程序中使用了一些第三方依赖项,这些依赖项也用作汇总的输入。我遇到的问题可以简化为以下代码。

my-dependency.js

(function () {
    var myDependency = {};
    myDependency.doSomeThing = function () {
        console.log("Doing Something");
    };
    window['myDependency'] = myDependency;
})();

my-code.js

window.myDependency.doSomeThing();

由于我们的应用程序没有单个顶级入口点,因此我创建了一个虚拟顶级文件,该文件可提取所有必需文件并用作汇总的输入。我已启用inlineDynamicImports,以便为该应用程序创建一个捆绑包。

rollupImporter.js

(async function () {
    await import("./my-dependency.js");
    await import("./my-code.js");
})();

当汇总为此代码创建捆绑包时,它会创建一个名为myDependency的变量来保存my-dependency.js的导出内容,该变量最终会覆盖由第三方依赖关系创建的对象,并且我收到一条错误消息,说myDependency.doSomething不是功能。

由汇总创建的捆绑软件如下:

(async function () {
    await Promise.resolve().then(function () { return myDependency; });
    await Promise.resolve().then(function () { return myCode; });
})();

(function () {
    var myDependency= {};
    myDependency.doSomeThing = function () {
        console.log("Doing Something");
    };
    window['myDependency'] = myDependency;
})();

var myDependency= /*#__PURE__*/Object.freeze({

});

window.myDependency.doSomeThing();

var myCode = /*#__PURE__*/Object.freeze({

});

如何获取汇总表以不为具有相同名称的导出创建变量?我无法控制第三方依赖性,因此无法让他们以不同的方式命名文件及其对象。

P.S。我正在使用我使用的对话框填充库遇到此问题,但决定简化此问题的问题。

0 个答案:

没有答案