Webpack - 如何在已存在的情况下重用全局库名称?

问题描述 投票:0回答:1

晚上好!

我有这个包含多个包的monorepo,其中每个包都使用Webpack独立捆绑。

在它是monorepo之前,我会有一个捆绑文件,并且可以通过output.library属性在浏览器中通过全局变量提供它。现在我有以下内容,因为我有多个条目:

output: {
    library: "SC",
    // export itself to UMD format
    libraryTarget: "umd",
    umdNamedDefine: true,
    filename: "[name]/dist/organization-[name].js",
    // fix for https://github.com/webpack/webpack/issues/6525
    globalObject: `(typeof self !== 'undefined' ? self : this)`
  }

问题是,如果我对每个包使用相同的配置,并且我使用脚本标签将多个导入到浏览器,则实际上只有最新的脚本可用,因为它实际上每次都重新创建全局变量。

有没有办法重复使用它?或许我可以在这里使用更好的约定。例如,在节点中,我使用包名称导入它们,但在浏览器中,我觉得它们应该都在同一个全局变量下。

谢谢你的任何建议!

javascript webpack bundle webpack-4 monorepo
1个回答
0
投票

正如我在webpack的repository创建的问题中提到的,解决方案是使用以下内容:library: ["MyLibrary", "[name]"]

这将使所有包在相同的全局变量MyLibrary下可用,但由它们各自的条目(即MyLibrary.entryOneMyLibrary.entryTwo)分开。

© www.soinside.com 2019 - 2024. All rights reserved.