详解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实现禁止后退的方法
Dec 27 Javascript
在网页里看flash的trace数据的js类
Jan 10 Javascript
使表格的标题列可左右拉伸jquery插件封装
Nov 24 Javascript
JavaScript制作简单的日历效果
Mar 10 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
Dec 16 Javascript
jQuery遮罩层实例讲解
May 11 jQuery
Vue自定义指令使用方法详解
Aug 21 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
Jun 17 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
Sep 28 Javascript
JS脚本加载后执行相应回调函数的操作方法
Feb 28 Javascript
对vuex中getters计算过滤操作详解
Nov 06 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
Jan 08 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 smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
php利用事务处理转账问题
2015/04/22 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python聊天室实例程序分享
2016/01/05 Python
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
python实现rsa加密实例详解
2017/07/19 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Django操作session 的方法
2020/03/09 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
三星英国官网:Samsung英国
2018/09/25 全球购物
WSDL的操作类型主要有几种
2013/07/19 面试题
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
毕业设计致谢语
2015/05/14 职场文书
硕士学位申请报告
2015/05/15 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript