详解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 相关文章推荐
ExtJS Grid使用SimpleStore、多选框的方法
Nov 20 Javascript
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
angularjs基础教程
Dec 25 Javascript
使用jQuery获取data-的自定义属性
Nov 10 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
Apr 17 Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
Sep 18 Javascript
import与export在node.js中的使用详解
Sep 28 Javascript
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
JS实现多选框的操作
Jun 24 Javascript
Vue和React有哪些区别
Sep 12 Javascript
微信小程序抽奖组件的使用步骤
Jan 11 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自动给文章加关键词链接的函数代码
2012/11/29 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
万能的php分页类
2017/07/06 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
2011/03/01 Javascript
js三种排序算法分享
2012/08/16 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
JS实现提示效果弹出及延迟隐藏的功能
2019/08/26 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
python判断字符串是否纯数字的方法
2014/11/19 Python
利用python批量检查网站的可用性
2016/09/09 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
python实现logistic分类算法代码
2020/02/28 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
html5.2 dialog简介详解
2018/02/27 HTML / CSS
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
皮肤科医师岗位职责
2013/12/04 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript