Webpacker 资产摘要在部署与部署之间不一致

Webpacker asset digest not consistent from deploy to deploy

我正在使用 Rails 和 Webpacker。当我部署时,我的 CSS 资产摘要(public/packs/css 中文件的摘要)在部署与部署之间是不一样的。

不仅不同部署的摘要不同,而且有时(尽管不总是)不同机器的摘要也不同。

我该如何解决这个问题?我想我也许可以通过准确了解摘要的生成方式来获得一些见解,但到目前为止我还没有找到任何好的信息。

找到解决方案,感谢 these two GitHub 个问题。

第 1 步:运行yarn add webpack-merge

第 2 步:更改 config/webpack/environment.js 以匹配以下内容:

const { environment } = require('@rails/webpacker')

const { merge } = require('webpack-merge');

const sassLoader = environment.loaders.get('sass')
const cssLoader = environment.loaders.get('css')

sassLoader.use.map(loader => {
  if (loader.loader === 'css-loader') {
    loader.options = merge(loader.options, { sourceMap: false })
  }
});

cssLoader.use.map(loader => {
  if (loader.loader === 'css-loader') {
    loader.options = merge(loader.options, { sourceMap: false })
  }
});

module.exports = environment

之后,CSS 摘要应该是确定性的。