详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
执行 npm run build 之后的 dist 目录的静态资源的文件名多会追加上 hash 值,比如: page1.f151b4d3.js
那如果不要 hash 呢,你只需要配置 vue.config.js 文件中的 filenameHashing
官方文档也提到了因为 html 也是我们通过插件生成的,静态资源直接就 inject 进去的,所以,当 html 不是自动生成或者其他情况时候,就不能加 hash 了,可以配置 false。
filenameHashing: false
我们看看源码实现:
首先它是 vue.config.js 的一个配置,在文件 cli-service/lib/options.js 中:
默认值是 true
filenameHashing: true
先看 css 部分,在文件 cli-service/lib/config/css.js 中:
const filename = getAssetPath(
options,
`css/[name]${options.filenameHashing ? '.[contenthash:8]' : ''}.css`
)
再看 js 部分,在文件 cli-service/lib/config/prod.js
const filename = getAssetPath(
options,
`js/[name]${isLegacyBundle ? `-legacy` : ``}${options.filenameHashing ? '.[contenthash:8]' : ''}.js`
)
他们多依赖函数 getAssetPath,在文件 util/getAssetPath.js 中定义了
const path = require('path')
module.exports = function getAssetPath (options, filePath, placeAtRootIfRelative) {
return options.assetsDir
? path.posix.join(options.assetsDir, filePath)
: filePath
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Vue中使用require.context自动引入组件的操作方法
require.context 是 webpack 提供的一个API,用于创建context,即一组具有相同上下文的模块,使用 require.context 可以方便地加载多个模块,并且可以灵活地控制模块的加载顺序和依赖关系,本文给大家讲解Vue中使用require.context自动引入组件的方法,感兴趣的朋友一起看看吧2024-01-01
vue项目使用md5加密、crypto-js加密、国密sm3及国密sm4的方法
密码或者其他比较重要东西假如使用明文传输中是很危险的,所以就需要前端一些加密协议,对密码、手机号、身份证号等信息进行保护,下面这篇文章主要给大家介绍了关于vue项目中使用md5加密、crypto-js加密、国密sm3及国密sm4的相关资料,需要的朋友可以参考下2022-12-12


最新评论