Javascript 如何使网页包在绑定时不使用窗口对象?
我正在制作一个React组件库来抽象出我在多个项目中使用的一些组件。有些项目是用CRA制作的,有些是用盖茨比制作的,有些可能是别的东西,等等。我使用了在React docs网站上链接的Neutrino.js框架/工具链,但我遇到的问题是,默认情况下,构建的输出文件都使用Javascript 如何使网页包在绑定时不使用窗口对象?,javascript,reactjs,webpack,module,Javascript,Reactjs,Webpack,Module,我正在制作一个React组件库来抽象出我在多个项目中使用的一些组件。有些项目是用CRA制作的,有些是用盖茨比制作的,有些可能是别的东西,等等。我使用了在React docs网站上链接的Neutrino.js框架/工具链,但我遇到的问题是,默认情况下,构建的输出文件都使用窗口对象,这导致gatsby build中断,因为节点/SSR中不存在window。有没有办法让中微子/网页包输出一个不使用窗口的包?在搜索解决方案并与其他库进行比较时,ESM似乎是最好的,但我不确定如何让webpack使用它,我
窗口
对象,这导致gatsby build
中断,因为节点/SSR中不存在window
。有没有办法让中微子/网页包输出一个不使用窗口的包?在搜索解决方案并与其他库进行比较时,ESM似乎是最好的,但我不确定如何让webpack使用它,我认为它目前不受支持。是否还有其他工具可供我使用?将配置添加到您的网页配置中:
output: {
globalObject: "this",
},
默认值为窗口
例如:
要使UMD构建在浏览器和Node.js上都可用,请将output.globalObject选项设置为“this”
module.exports = {
// ...
output: {
library: 'myLib',
libraryTarget: 'umd',
filename: 'myLib.js',
globalObject: 'this'
}
};
-从文档中从“窗口”将“导入窗口”放在哪里陈述如果我把它放在库中构建的组件中,我会得到一个无法解析的窗口,当我把它放在导入我的组件的应用程序中时也会发生同样的情况。(如果我忽略它,我会得到错误321)非常感谢你,你是救命恩人!我现在很紧张,因为不管我把“globalObject”设置成什么,它都会被覆盖,因为它总是编译成“self”