详解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 相关文章推荐
js登录弹出层特效
Mar 07 Javascript
jQuery中多个元素的Hover事件解决方案
Jun 12 Javascript
通过实例理解javascript中没有函数重载的概念
Jun 03 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
Jan 05 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
Feb 15 Javascript
vue实现todolist单页面应用
Apr 11 Javascript
Vue.js实现模拟微信朋友圈开发demo
Apr 20 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 jQuery
11行JS代码制作二维码生成功能
Mar 09 Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 Javascript
小程序兼容安卓和IOS数据处理问题及坑
Sep 18 Javascript
vue项目添加多页面配置的步骤详解
May 22 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中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
Python文件和目录操作详解
2015/02/08 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
python结合API实现即时天气信息
2016/01/19 Python
python3实现微型的web服务器
2019/09/03 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
年终考核评语
2014/01/19 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
新书发布会策划方案
2014/06/09 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
趣味运动会口号
2015/12/24 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS