Vue 2和Webpack 4:不同终端会话上的内容哈希不同

时间:2019-02-04 10:14:57

标签: webpack-4 vue-cli-3

我正在使用Vue Cli 3.4.0和Webpack 4捆绑我的应用程序,并希望通过使用[contenthash]定义输出文件名(chunkFilename)的名称,以较少的不必要网络流量更快地加载我的网站。

我提到了https://webpack.js.org/guides/caching/

但是,内容哈希似乎取决于终端会话。

例如:

  • 终端会议1: app.a7a79165.js
  • 终端会议2: app.b8fee5f5.js

无论在指定的终端会话中运行 npm run build 多少次, app.js|about.js|tooltip.js|runtime.js 的[contenthash]都是一致的。但是对于不同的终端会话,生成的哈希是不同的。但是,对于 chunk-vendors.js|app.css ,无论终端会话如何,其内容哈希都是完全相同的。

我的简单vue应用程序在这里:https://github.com/rliuyi/vue-content-hash-inconsistent

请查看我的vue env:https://mega.nz/#!jXYjVILL!p5vL08NqbVf4_I_i1l2dLFFHyZadF_vNUIja_q89bOQ 和问题的屏幕记录: https://mega.nz/#!eThzjC6A!NTQ121Vhks0ffF6pPuxphEbtWIo71w3Le7qGulQLyAA

vue.config.js

const webpack = require('webpack');

module.exports = {
    configureWebpack: {
        output: {
            filename: '[name].[contenthash].js',
            chunkFilename: '[name].[contenthash].js'
        },
        plugins: [
            new webpack.HashedModuleIdsPlugin()
        ],
        optimization: {
            runtimeChunk: 'single'
        }
    }
}

预期结果:

  • 内容散列基于资产的内容,与终端会话无关。

实际结果:

  • 对于条目输出和拆分块文件,内容哈希取决于终端会话。

0 个答案:

没有答案