我正在使用汇总来捆绑应用程序所需的所有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。我正在使用我使用的对话框填充库遇到此问题,但决定简化此问题的问题。