Vue Cli3 项目 vue.config.js 配置

配置优化

  • 一、js文件最小化处理
  • 二、分割代码
  • 三、图片资源压缩
  • 四、开启gzip压缩

先看一下优化配置之前的文件大小

通过vue-cli3脚手架创建的项目,可以通过在项目根目录下创建vue.config.js配置文件来修改优化webpack配置,主要优化流程分为以下几步进行,用于优化项目打包,减小体积大小

  • 1.js最小化处理
  • 2.js文件分割,防止单文件大小
  • 3.图片资源文件压缩
  • 4.开启gzip压缩

配置优化

一、js文件最小化处理

代码的最优化, 通过chainWebpak来处理. 这里使用的是webpack配置中的optimization来处理的

module.exports = {chainWebpack: config => {config.optimization.minimize(true);}
}

效果如下

尺寸略有缩减,其他文件的大小也大多有所缩减

二、分割代码

module.exports = {chainWebpack: config => {config.optimization.minimize(true);config.optimization.splitChunks({chunks: 'all'})}
}

效果如下

三、图片资源压缩

开启图片压缩,要先安装 image-webpack-loader 插件

npm install image-webpack-loader --save

然后加入如下配置

chainWebpack: config => {//最小化代码config.optimization.minimize(true);//分割代码config.optimization.splitChunks({chunks: 'all'});// //压缩图片config.module.rule('images').use('image-webpack-loader').loader('image-webpack-loader').options({bypassOnDebug: true}).end()
}

四、开启gzip压缩

要开启gzip压缩, 这里我们需要引入一个插件: compression-webpack-plugin

npm install compression-webpack-plugin --save-dev

然后定义压缩插件

const CompressionWebpackPlugin = require('compression-webpack-plugin')const compress = new CompressionWebpackPlugin({filename: info => {return `${info.path}.gz${info.query}`},algorithm: 'gzip', threshold: 10240,test: new RegExp('\\.(' +['js'].join('|') +')$'),minRatio: 0.8,deleteOriginalAssets: false}
)module.exports = {publicPath: process.env.NODE_ENV === 'production' ?'/' : '/',//放置生成的静态资源 (js、css、img、fonts) 的目录assetsDir: 'static',//关闭生产环境的 source map 以加速生产环境构建productionSourceMap: false,chainWebpack: config => {//最小化代码config.optimization.minimize(true);//分割代码config.optimization.splitChunks({chunks: 'all'});// //压缩图片config.module.rule('images').use('image-webpack-loader').loader('image-webpack-loader').options({bypassOnDebug: true}).end()},configureWebpack: {plugins: [compress]}
}

然后在devServer加入如下配置即可看到gzip压缩效果

devServer: {//在本地服务器开启gzip,线上服务器都支持gzip不需要设置before(app) {app.get(/.*.(js)$/, (req, res, next) => {req.url = req.url + '.gz';res.set('Content-Encoding', 'gzip');next();})}
}

效果如下图


经过以上几步优化,文件体积已经缩减了不少,我们可以看一下打包后dist目录体积大小对比

  • 1、优化前 7.1MB
  • 2、优化后 1.5MB

vue.config.js文件的完整配置如下

const CompressionWebpackPlugin = require('compression-webpack-plugin')const compress = new CompressionWebpackPlugin({filename: info => {return `${info.path}.gz${info.query}`},algorithm: 'gzip',threshold: 10240,test: new RegExp('\\.(' + ['js'].join('|') +')$'),minRatio: 0.8, // 只有压缩率小于这个值的资源才会被处理deleteOriginalAssets: false // 删除原文件
});module.exports = {//该配置能帮助你为项目中的所有资源指定一个基础路径,它被称为公共路径publicPath: process.env.NODE_ENV === 'production' ?'/' : '/',//放置生成的静态资源 (js、css、img、fonts) 的目录assetsDir: 'static',//关闭生产环境的 source map 以加速生产环境构建productionSourceMap: false,chainWebpack: config => {//最小化代码config.optimization.minimize(true);//分割代码config.optimization.splitChunks({chunks: 'all'});//压缩图片config.module.rule('images').use('image-webpack-loader').loader('image-webpack-loader').options({bypassOnDebug: true}).end()},configureWebpack: {// 通过 compression-webpack-plugin 插件对js文件进行gzip压缩plugins: [compress]},devServer: {proxy: {'/mock/*': {target: 'https://easy-mock.com/',changeOrigin: true,ws: true,pathRewrite: {}}},//在本地服务器开启gzip,线上服务器都支持gzip不需要设置before(app) {app.get(/.*.(js)$/, (req, res, next) => {req.url = req.url + '.gz';res.set('Content-Encoding', 'gzip');next();})}}
}

原文链接:https://blog.csdn.net/qq_35718410/article/details/99844054

Vue Cli3 项目 vue.config.js 配置相关推荐

  1. vue.config.js配置configureWebpack的optimization splitChunks页面空白

    确实通过这种方式解决: vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud问答 原因可能是这个: Taro项目 ...

  2. vue-cli3.x( bate版 ) 中 vue.config.js 配置含义

    vue-cli3.0 中 vue.config.js 配置含义 在vue-cli3.x( bate版 ) 中有些配置需要自己去配置 需要在最外层同级目录下建立 vue.config.js 文件 下面就 ...

  3. vue.config.js配置proxy代理解决跨越;proxy代理报404;

    像我们本地的vue项目运行起来,访问的地址一般是localhost,这个时候请求后台的接口,端口号也不一致,肯定就会存在跨域问题,所以我们要是想正常访问接口的话,就需要解决掉跨域问题. 本文我们是在v ...

  4. vue-cli3中的vue.config.js配置

    vue-cli3中的vue.config.js配置 我的跨域是配置通过chrome浏览器的跨域设置,前端修改跨域问题,以此解决跨域的,故没有配置代理: const path = require('pa ...

  5. 【vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud】

    vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud问答

  6. 【Cli下在vue.config.js配置configureWebpack/resolve/alias之无效 - 】

    cli下在vue.config.js配置configureWebpack/resolve/alias无效 - DCloud问答

  7. vue Cli3与vue Cli2的改变

    vue Cli3与vue Cli2的区别 常用命令 官方文档 创建文件 启动项目 目录结构 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 常用命令 vue -V 查看本地 vue ...

  8. webpack之webpack.config.js配置

    webpack之webpack.config.js配置 wbepack.config.js webpack的配置文件详解: ​ 作用: 指示 webpack 干那些活(当你运行 webpack 指令时 ...

  9. Vue项目 跨域 解决方案与 vue.config.js 配置解析

    为什么会出现跨域? 出于浏览器的同源策略限制.同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说 ...

最新文章

  1. 使用 做签名的post_ASP.NET WebApi 基于分布式Session方式实现Token签名认证
  2. 如何通过js文件的名称,反查出这个js文件所在project的artifact id和group id
  3. 《从零开始学ASP.NET CORE MVC》:VS2019创建ASP.NET Core Web程序(三)
  4. 用JavaScript往DIV动态添加内容
  5. 网站三级分销数据库如何设计,简单案例
  6. oracle消耗内存的查询,在AIX中计算ORACLE消耗的私有内存总数
  7. 《软件测试》阅读笔记
  8. 咸鱼团队的第一次SCRUM冲刺
  9. 51单片机-PASCAL语言开发环境搭建
  10. linux无线电工具grax,开源软件无线电GNU Radio
  11. matlab符号运算报错,matlab符号运算符
  12. 个人电脑php网站搭建,如何在本地电脑搭建自己网站的流程(图文教程)
  13. 1.决策树 实例:泰坦尼克号幸存者的预测
  14. 共射级放大电路—实现最大输出振幅的方法竟如此简单
  15. TJA1044---具有待机模式的高速CAN收发器
  16. c++实现文件传输之三:断点续传与多线程传输
  17. c语言表示时间的程序,C语言显示“当前时间”小程序
  18. 字符编码OneHotEncoder
  19. 菜刀php教程,中国菜刀的功能介绍和使用方法(黑站利器与后门利用测试工具)
  20. Java小白自学8:循环结构练习题(一)

热门文章

  1. ARP和RARP报头结构
  2. 自己动手架设linux下Web服务器(图)3
  3. jquery实现的视差滚动教程(视差大背景效果)
  4. Magento获取产品自定义属性及对应的值
  5. centos7/rhel7安装较高版本ruby2.2/2.3/2.4+
  6. 关于python文件操作
  7. 【TensorFlow】多GPU训练:示例代码解析
  8. 【Python管理GPU】pynvml工具的安装与使用
  9. ktv 上传图片 1218
  10. 爬虫-36kr-接口分析-191016