如何处理nodejs上的窗口对象,以供reactjs应用程序的服务器端呈现
我正在尝试为我的reactjs应用程序实现服务器端呈现。 我正在使用webpack构buildreactjs应用程序,增强解决scheme来处理nodejs中的jsx文件的导入。
我的应用程序依赖于像enquire.js这样的第三方库。 当应用程序尝试在nodejs上导入enquire.js时,它会失败,并显示错误ReferenceError: window is not defined
由于窗口对象不可用nodejs如何处理使用窗口进行服务器端呈现的库?
我还没有使用过Webpack。 然而,我有使用browserify类似的问题,我解决了它通过创build两个版本:一个用于浏览器为node.js与模块列表忽略。 您可以通过添加到webpackconfiguration达到相同的效果:
{ plugins: [ new webpack.IgnorePlugin(/file\.js$/) ] }
然后你必须确保你没有对enquire.js进行任何调用,方法是检查require()
返回false值或带有模块函数的对象。