详解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+JSon 无刷新分页实现代码
Apr 01 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
Jan 21 Javascript
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
Jun 09 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
Nov 21 Javascript
jQuery原理系列-css选择器的简单实现
Jun 07 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
微信公众号 摇一摇周边功能开发
Dec 08 Javascript
详解vue 命名视图
Aug 14 Javascript
JavaScript实现一键复制内容剪贴板
Jul 23 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
hadoop常见错误以及处理方法详解
2013/06/19 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
js滚动条多种样式,推荐
2007/02/05 Javascript
JavaScript While 循环基础教程
2007/04/05 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
javascript检测两个数组是否相似
2015/05/19 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
深入理解JQuery循环绑定事件
2016/06/02 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
如何更优雅地写python代码
2019/07/02 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
Python用户自定义异常的实现
2020/12/25 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
往来会计岗位职责
2013/12/19 职场文书
采购员的工作职责
2013/12/26 职场文书
村委会贫困证明
2014/01/14 职场文书
捐书寄语赠言
2014/01/18 职场文书
爱情检讨书大全
2014/01/21 职场文书
股东合作协议书范本
2014/04/14 职场文书
四群教育工作总结
2015/08/10 职场文书
《确定位置》教学反思
2016/02/18 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL