详解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 学习 几种常用方法
Jun 11 Javascript
JavaScript高级程序设计 扩展--关于动态原型
Nov 09 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
js读取配置文件自写
Feb 11 Javascript
使用jQuery在对象中缓存选择器的简单方法
Jun 30 Javascript
jquery.tableSort.js表格排序插件使用方法详解
Aug 12 Javascript
node安装--linux下的快速安装教程
Mar 21 Javascript
vue-router实现tab标签页(单页面)详解
Oct 17 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
js设置默认时间跨度过程详解
Jul 17 Javascript
JavaScript使用localStorage存储数据
Sep 25 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
PHP 编写的 25个游戏脚本
2009/05/11 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
Vue程序调试的方法
2019/06/17 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
Python全局变量操作详解
2015/04/14 Python
python实现发送邮件功能
2017/07/22 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
加拿大服装和鞋类零售商:Mark’s
2021/01/04 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
大四学年自我鉴定
2013/11/13 职场文书
综合办公室主任职责
2013/12/16 职场文书
项目管理计划书
2014/01/09 职场文书
物控部经理职务说明书
2014/02/25 职场文书
平遥古城导游词
2015/02/03 职场文书
运动会加油稿50字
2015/07/21 职场文书
春节随笔
2015/08/15 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript