如何处理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值或带有模块函数的对象。

Interesting Posts