VUE中的打包删除文件、图片的HASH码

目录
  • VUE打包删除文件、图片的HASH码
    • 步骤
    • 去掉map文件和图片及其他静态hash
  • VUE打包后遇到的坑
    • 打包之后打开dist的页面显示空白
    • 打包后找不到响应路径

VUE打包删除文件、图片的HASH码

前言:vue打包的时候默认是会加hash加密的,很多时候不能这样,今天就遇到一个需求不要hash加密,很久没弄了就记录一下。

步骤

首先进入:进入项目-》build -》webpack.prod.conf.js 找到

filename: utils.assetsPath('js/[name].[chunkhash].js'),
filename: utils.assetsPath('css/[name].[contenthash].css'),

修改成:

filename: utils.assetsPath('js/[name].js'),
filename: utils.assetsPath('css/[name].css'),

好了,打包测试一下吧。

备注:在配置文件中还有一个chunkFilename,chunkFilename 没有找到官方的具体说明,大概就是在生成一些临时文件时,会生成这种chunkFile,这些我们平时用不上,所以建议原生态比较好。

去掉map文件和图片及其他静态hash

(1)去掉.map文件

进入项目目录-》config -》 index.js 中设置:

productionSourceMap: false

(2)去掉临时文件生成的hash加密:

注销:

chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')

改为

chunkFilename: utils.assetsPath('js/[id].js')

(3)去掉图片及其他hash:

进入build -》 webpack.base.conf.js

修改:

name: utils.assetsPath('img/[name].[hash:7].[ext]')

name: utils.assetsPath('img/[name].[ext]')

其他参考img方式去除就行,好了现在就可以去掉所有hash了。

VUE打包后遇到的坑

今天使用vue打包(npm run build)遇到了几个坑,在这里分享给大家

打包之后打开dist的页面显示空白

这个问题以前就处理过,是打包过程中出现错误频率较高的一种,可能有3处地方会出现这种情况

1、记得改一下config下面的index.js中bulid模块导出的路径。因为打包后的index.html里边的内容都是通过script标签引入的,默认显示的路径不对,打开肯定是空白的。

build: {
    index: path.resolve(__dirname, '../dist/index.html'),
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    productionSourceMap: true,
    devtool: '#source-map',
    productionGzip: false,
    productionGzipExtensions: ['js', 'css'],
    bundleAnalyzerReport: process.env.npm_config_report
  }

这里需要将 assetsPublicPath: '/'改为assetsPublicPath: './',

2.src里边router/index.js路由配置里边默认模式是mode:'hash'(页面会在路由上加#),有时候改成了history(纯净路由)模式的话,打开也会是一片空白。所以改为hash或者直接把模式配置删除,让它默认的就行 。

export default new Router({
//mode: 'history',
mode:'hash',\\或者直接不写
  routes: [{}]
)}

3.也有可能是因为背景图片路径没有配置需要在build/utils.js添加配置

publicPath: '../../'
if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        publicPath:'../../',
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }

打包后找不到响应路径

这都是比较常见的几种解决方式,如果将静态资源的图片路径作为绑定数据以js引入,图片放入了static里面用来引入这个页面又该怎样处理呢,如果以绝对路径访问vue打包是不会处理这一类的,所以打包后它图片访问的路径不会更改,而打包后dist文件里就只有index.html和webpack不会处理的static文件夹(vue static/下的文件都不会被Webpack处理:它们使用相同的文件名,直接拷贝到最终的路径)

解决方式有两种:

1.如果要上线的话,需要将你的主域名加在static之前然后他会逐级去访问打包后的文件。

return {
    isShow:true,
    imgData:'',
    myUpPic:'/yourDN/static/img/logo.png'
}

2.由于vue将组件访问静态资源的路径配置好了,你可以直接/static来找到static下的文件,但是这里的问题就是你访问的时候它是逐级访问这些文件的,所以打包后他还是会找不到静态资源的文件,在这里你就需要将/static改成./static,这样的话他就会在打包后的文件夹下直接访问其之下的静态资源文件夹。

return {
    isShow:true,
    imgData:'',
    //myUpPic:'/static/img/logo.png' 
    myUpPic:'./static/img/logo.png'
}

以上就是个人处理vue打包bug的一些小经验,希望这些能够对大家有所帮助。也希望大家多多支持我们。

(0)

相关推荐

  • vue-cli3中配置alias和打包加hash值操作

    1.之前在项目测试环境打包的时候,js文件打包出来没有hash值,但是生产环境打包出来却又hash值 当时只配置了 filenameHashing: true,这样是不够的 后来在chainWebpack中配置config.output.filename('[name].[hash].js').end(),解决了该问题 2.配置alias可以在引入文件的时候不用写很长的相对路径 步骤: 先引入path模块 const path = require('path') function resolve

  • Vue项目build后,图片加载不出来的解决

    目录 Vue项目build图片加载不出来 1.在config/index.js文件内 2.在webpack.prod.conf.js文件内 3.在utils.js文件里添加 publicPath:'../../' Vue项目打包后部分图片不显示 Vue项目build图片加载不出来 vue项目,build之后会对图片进行处理,具体处理的方式是在文件webpack.base.conf.js中,有如下代码: module: {     rules: [      {         test: /\.

  • Vue实现hash模式网址方式(就是那种带#的网址、井号url)

    目录 Vue实现hash模式网址 Vue路由中hash模式 模式一:mode:‘hash’ 模式二:mode:‘history’ Vue实现hash模式网址 src\js\main.js ... const router = new VueRouter({ ... mode: 'hash', //hash模式网址,带#井号 // mode: 'history', // 这里存在一个弊端,如果要去掉路由的#号,需要后端配合配置,否则刷新页面就会报错404,反正如果不是非得要做支付建议不用这个参数配

  • vue项目之webpack打包静态资源路径不准确的问题

    目录 webpack打包静态资源路径不准确 问题 静态资源找不到如js文件 图片找不到 webpack中的静态资源处理 Webpacked 资源 资源处理规则 在JavaScript里获取资源路径 "真实的" 静态资源 webpack打包静态资源路径不准确 问题 1.将打包好的项目部署到服务器,发现报错说图片找不到. 2.静态资源如js访问不到 分析并且解决问题 明确一点的就是,看到报错404,找不到静态资源,很明显,路径错误了. 静态资源找不到如js文件 资源打包路径有误,打包后的资

  • VUE中的打包删除文件、图片的HASH码

    目录 VUE打包删除文件.图片的HASH码 步骤 去掉map文件和图片及其他静态hash VUE打包后遇到的坑 打包之后打开dist的页面显示空白 打包后找不到响应路径 VUE打包删除文件.图片的HASH码 前言:vue打包的时候默认是会加hash加密的,很多时候不能这样,今天就遇到一个需求不要hash加密,很久没弄了就记录一下. 步骤 首先进入:进入项目->build ->webpack.prod.conf.js 找到 filename: utils.assetsPath('js/[name

  • vue中实现上传文件给后台实例详解

    FormData 对象的使用: 1.用一些键值对来模拟一系列表单控件:即把form中所有表单元素的name与value组装成 一个queryString 2. 异步上传二进制文件. (ps:说白了就是不使用form表单实现form表单提交数据或文件,如果还是不懂,请自行百度) 实现过程 1.使用type类型为file的input框实现选择文件(顺便记录一下修改input框的默认样式) 2.修改input框的默认样式 3.通过选择文件拿到数据 4.请求接口 以上就是本次关于vue中实现上传文件给后

  • 在vue中读取本地Json文件的方法

    其实关于这个问题,网上已经可以找到些方法,不过基本上没有完整的,或者是其中有些坑,下面写一下自己的亲身实践. 使用vue读取本地json文件需要安装vue-resource插件,然后使用它的$http.get来读取json文件. json文件应该是必须放在static目录下 然后使用npm install 命令安装vue-resource,太慢的话就使用淘宝镜像安装,安装完成后先引用这个组件. 在main.js文件中添加: import VueResource from 'vue-resourc

  • vue中添加与删除关键字搜索功能

    具体代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible

  • 关于Vue中img动态拼接src图片地址的问题

    下面看下Vue中img动态拼接:src图片地址,具体内容如下所示: 使用场景:根据后端返回图片标记来匹配本地图片资源 例如:根据后端返回k1标记,前端生成assets/images/inventory/k1.png图片资源路径 <template> <div class="fl"> <img :src="getImgUrl(gatherInfo.img1)" alt=""> <img :src="

  • Vue中请求本地JSON文件并返回数据的方法实例

    目录 1.目录结构 2.检查一下自己是否安装了 json-server(以下截图代表安装了) 3.安装完成以后我们就可以运行自己的json文件了 4.看看浏览器里的数据呈现效果吧 5.为了保险起见,我还特地去 postman 上测试了一下(可以省略这步) 6.现在我们可以编写代码发送请求来获取数据啦 7.在控制台就可以看到我们数据请求回来了 总结 1.目录结构 直接在根目录下创建自己的JSON文件,在此我的JSON文件名为data.json 以下是我的JSON文件内容(此处是参照的黑马程序员的v

  • Vue中如何获取json文件中的数据

    目录 场景 实现 场景 访问百度音乐API需要传递音乐类型参数,而这些参数是存在musictype.json中, 现在在组件listcate.vue需要获取json数据. json文件内容: 文件位置: 实现 musictype.json { "currentType":[1,2,11,21,22,23,24,25] } listcate.vue <template lang="html"> <div> <ListCate_List v

  • vue中的vendor.js文件过大问题及解决

    目录 vue vendor.js文件过大问题 1. cdn 引入 2. 在使用vue等包的地方,注释掉import引入 3. 打包忽视掉vue等包 vue打包降低vendors.js文件大小 vue打包项目优化 vue vendor.js文件过大问题 1. cdn 引入 index.html中cdn的方式引入vue.vuex.axios.element-ui.vue-router等包,代码如下: <script src="https://cdn.bootcdn.net/ajax/libs/

  • vue中添加mp3音频文件的方法

    有的时候我们需要在vue中添加音频文件,但是直接将音频文件放置了assets目录下的时候,会发现并不能正常播放,下面是两种常用的配置方法: 方法一.将音频文件放置在static目录中,然后进行调用,如下所示 <audio class="success" src="/static/audios/do_wrong.mp3"> </audio> 以上这种方式就能够解决这个问题了. 方法二.给项目配置mp3格式的解析器 1.在webpack.base

  • Vue项目WebPack打包删除注释和console

    目录 WebPack打包删除注释和console npm run build打包去掉console和警告 WebPack打包删除注释和console 项目中使用了 jspdf 这个插件,webpack打包后注释里存在这样的 领导让删除,于是使用插件 cnpm install uglifyjs-webpack-plugin -D vue.config.js里添加配置 const UglifyJsPlugin = require('uglifyjs-webpack-plugin') //引入插件 m

随机推荐