窗口未在服务器端渲染window.webpackJsonp中定义

时间:2019-06-21 02:29:08

标签: webpack webpacker react-on-rails

我正尝试将Rails / Webpacker / ReactOnRails应用程序升级到Webpack4。我已包含对environment.splitChunks的调用。那就是放置这段代码:

window.webpackJsonp=window.webpackJsonp||[]).push([[11],.......

在我的捆绑包中。由于这是我的服务器端捆绑包,因此window不存在。有没有办法完全从添加webpackJsonp中排除该捆绑软件?

我尝试了以下两种配置:

environment.splitChunks();

environment.splitChunks(config =>
  Object.assign({}, config, {
    optimization: {
      splitChunks: {
        chunks(chunk) {
          return chunk.name !== 'server-bundle';
        }
      }
    }
  })
);

最终结果相同。如果我不包含splitChunks,则我的代码可以正常工作。

我也尝试过:

environment.splitChunks(config =>
  Object.assign({}, config, {
    optimization: {
      splitChunks: {
        cacheGroups: {
          server: {
            test: /server-bundle/,
            minChunks: 99999 // Do not ever chunk this file
          }
        }
      }
    }
  })
);

environment.splitChunks(config =>
  Object.assign({}, config, {
    optimization: {
      splitChunks: {
        cacheGroups: {
          server: {
            test: /server-bundle/,
            minChunks: 99999 // Do not ever chunk this file
          }
        },
        chunks(chunk) {
          return chunk.name !== 'server-bundle';
        }
      }
    }
  })
);

我认为其中一个会把它放在自己的组中,该组不会被分块,但不会骰子。

0 个答案:

没有答案