公司让我从0搭建一个webpack环境,我想着用一个webpack4,但是遇到一个hash问题,想请教大家
问题描述 : webpack@4用mini-css-extract-plugin单独分离了css
然后修改css代码后,引用css的那个js文件的hash也跟着发生了变化。
但是我css设置了contenthash, js也设置了chunkhash
new MiniCssExtractPlugin({
filename: 'static/css/[name].[contenthash:8].css'
})
output: {
path: path.resolve(__dirname, '../dist'),
filename: 'static/js/[name].[chunkhash:8].js',
publicPath: '/'
},
虽然不清楚,我觉得这个跟manifest可能没有关系,但是以防万一也单独分离了runtime的代码
optimization: {
splitChunks: {
chunks: 'all'
},
runtimeChunk: true
},
然后我修改css文件里的一个样式,css/js 文件的hash都变化。。可是我期望的是只有css变化,
另外也拿@vue/cli测试了一下,因为我想着它也是基于webpack4的嘛
这个是一个新创建的官方项目,然后我直接打包
然后修改了.vue文件里的一行css代码,然后再次打包
2次结果如图
依旧是css和js的 hash值都发生了变化。这个正常吗?我觉得希望的效果是只有css文件变化才对呀。
补充: webpack@3.10.0的版本有测试过,是没问题的。单独分离出来的css的改动,不会造成js的chunkhash变化
不知道大家是否有遇到过这个问题,如果没遇到就当给大家提个醒,遇到过的话,帮帮我。。
补充一个我遇到问题的webpack4的demo,只是简单的配置了css分离,clone后,运行npm run build就行 https://github.com/ziwei3749/webpack-4-demo
