晚上好!
我有一个带有多个软件包的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)`
}
问题是,如果我对每个软件包使用相同的配置,并且使用 script 标签将多个配置导入到浏览器,则实际上只有最新的脚本会之所以可用,是因为它实际上每次都在重新创建全局变量。
是否可以重用它?也许我可以在这里使用更好的约定。 例如,在node中,我使用捆绑软件名称导入它们中的每一个,但是在浏览器中,我觉得它们应该都在同一个全局变量下。
谢谢您的任何建议!
答案 0 :(得分:0)
正如我在webpack的repository上创建的问题中所述,解决方案是使用以下内容:
library: ["MyLibrary", "[name]"]
这将使所有程序包在相同的全局变量MyLibrary
下可用,但由它们各自的条目(即MyLibrary.entryOne
和MyLibrary.entryTwo
)隔开。