5

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

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

由于 window 对象不可用 nodejs 如何处理使用 window 进行服务器端渲染的库?

4

2 回答 2

1

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

{
    plugins: [
        new webpack.IgnorePlugin(/file\.js$/)
    ]
}

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

于 2015-02-02T13:11:58.337 回答
0

好吧,如果有人在看它,这仍然是一个很老的问题。

尝试

if (typeof window === 'undefined') {
  global.window = {};
}
于 2018-10-27T00:17:25.513 回答