如何处理nodejs上的window对象以进行reactjs应用程序的服务器端呈现

kir*_*ran 5 javascript node.js enquire.js reactjs isomorphic-javascript

我正在尝试为我的reactjs应用程序实现服务器端呈现.我正在使用webpack来构建reactjs应用程序,增强解析来处理nodejs中jsx文件的导入.

我的应用程序依赖于第三方库,如enquire.js.当react应用程序尝试在nodejs上导入enquire.js时,它会失败并显示错误 ReferenceError: window is not defined

由于window对象不可用nodejs如何处理使用窗口进行服务器端呈现的库?

dan*_*ula 1

我还没用过Webpack。然而,我在使用 browserify 时遇到了类似的问题,我通过创建两个构建来解决它:一个用于浏览器,一个用于 node.js,并包含要忽略的模块列表。您可以通过添加到 webpack 配置来达到相同的效果:

{
    plugins: [
        new webpack.IgnorePlugin(/file\.js$/)
    ]
}
Run Code Online (Sandbox Code Playgroud)

然后,您必须通过检查是否返回 false 值或带有模块函数的对象来确保您没有对 enquire.js 进行任何调用require()