详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计


Posted in Javascript onAugust 31, 2018

执行 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
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
为jQuery增加join方法的实现代码
Nov 28 Javascript
PHPExcel中的一些常用方法汇总
Jan 23 Javascript
JQuery操作元素的css样式
Mar 09 Javascript
JavaScript判断是否为数组的3种方法及效率比较
Apr 01 Javascript
jQuery中常用的遍历函数用法实例总结
Sep 01 Javascript
使用bootstrap3开发响应式网站
May 12 Javascript
AngularJS 依赖注入详解和简单实例
Jul 28 Javascript
Javascript数组循环遍历之forEach详解
Nov 07 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
Kotlin学习第一步 kotlin语法特性
May 25 Javascript
深入解析koa之异步回调处理
Jun 17 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
Aug 31 #Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
Aug 31 #Javascript
详解小程序输入框闪烁及重影BUG解决方案
Aug 31 #Javascript
javascript闭包的使用之按钮切换功能
Aug 30 #Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
Aug 30 #Javascript
基于Angularjs-router动态改变Title值的问题
Aug 30 #Javascript
从vue源码解析Vue.set()和this.$set()
Aug 30 #Javascript
You might like
php 中文和编码判断代码
2010/05/16 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
PHP代码加密的方法总结
2020/03/13 PHP
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
js 实现获取name 相同的页面元素并循环遍历的方法
2017/02/14 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
win10下python2和python3共存问题解决方法
2019/12/23 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
Python无损压缩图片的示例代码
2020/08/06 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
周鸿祎:教你写创业计划书
2013/12/30 职场文书
卫生标语大全
2014/06/21 职场文书
学校社会实践活动总结
2014/07/03 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
python创建字典及相关管理操作
2022/04/13 Python