Javascript 如何在nodejs上处理窗口对象以进行reactjs应用程序的服务器端渲染
我正在尝试为我的reactjs应用程序实现服务器端渲染。 我正在使用webpack构建reactjs应用程序,增强了解析能力,可以在nodejs中导入jsx文件 我的应用程序依赖于第三方库,如enquire.js。 当react应用程序尝试在nodejs上导入inquire.js时,它失败并出现错误Javascript 如何在nodejs上处理窗口对象以进行reactjs应用程序的服务器端渲染,javascript,node.js,reactjs,enquire.js,isomorphic-javascript,Javascript,Node.js,Reactjs,Enquire.js,Isomorphic Javascript,我正在尝试为我的reactjs应用程序实现服务器端渲染。 我正在使用webpack构建reactjs应用程序,增强了解析能力,可以在nodejs中导入jsx文件 我的应用程序依赖于第三方库,如enquire.js。 当react应用程序尝试在nodejs上导入inquire.js时,它失败并出现错误 ReferenceError:未定义窗口 由于窗口对象不可用,nodejs 如何处理使用Windows进行服务器端渲染的库 我还没有用过Webpack。然而,我在使用browserify时遇到了类似
ReferenceError:未定义窗口
由于窗口对象不可用,nodejs
如何处理使用Windows进行服务器端渲染的库 我还没有用过Webpack。然而,我在使用browserify时遇到了类似的问题,我通过创建两个版本解决了这个问题:一个用于browser,一个用于node.js,其中包含要忽略的模块列表。您可以通过添加到webpack配置来实现相同的效果:
{
plugins: [
new webpack.IgnorePlugin(/file\.js$/)
]
}
然后,您必须通过检查
require()
是否返回假值或带有模块函数的对象来确保您没有调用enquire.js。如果有人在查看,这仍然是一个非常老的问题
试一试
您能否与browserify分享解决此问题的方法。谢谢这会导致一个
e.code='MODULE_NOT_FOUND';抛出e;}()));代码>错误。不是这样工作的。
if (typeof window === 'undefined') {
global.window = {};
}