详解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 相关文章推荐
javascript 操作Word和Excel的实现代码
Oct 26 Javascript
Underscore.js 的模板功能介绍与应用
Dec 24 Javascript
js监听键盘事件示例代码
Jul 26 Javascript
js string 转 int 注意的问题小结
Aug 15 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Jun 05 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
Jun 18 jQuery
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
图解JS原型和原型链实现原理
Sep 15 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 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中的正规表达式(二)
2006/10/09 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
几种tab切换详解
2017/02/03 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Python collections模块实例讲解
2014/04/07 Python
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
浅析python实现动态规划背包问题
2020/12/31 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
优秀班干部事迹材料
2014/01/26 职场文书
总账会计岗位职责
2014/03/13 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
销售员岗位职责范本
2015/04/11 职场文书
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫