转:https://blog.csdn.net/robin_star_/article/details/83856363

前言:很好的打包优化的帖子,还没来的急去实测验证

1. 去掉 console 打印及 debug 信息,加快运行速度
修改 /build/webpack.prod.conf.js 文件配置如下:

const webpackConfig = merge(baseWebpackConfig, {
plugins: [
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false,
// 以下两行配置,关闭 debug 和 console
drop_debugger: true,
drop_console: true
}
},
sourceMap: config.build.productionSourceMap,
parallel: true
})
]
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2. 禁止生成 map 文件,保护源码,同时减小打包体积
修改 /config/index.js 文件配置如下:

module.exports = {
build: {
/**
* Source Maps
*/
productionSourceMap: false, // 把该项的配置修改为 false,关闭 source map
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map'
}
}
1
2
3
4
5
6
7
8
9
10
3. 开启 GZIP 压缩,进一步压缩 js 和 css 文件的体积
修改 /config/index.js 文件配置如下:

module.exports = {
build: {
// 默认情况下 Gzip 关闭,因为许多流行的静态主机,如 Surge 或 Netlify 已经为您 gzip 所有静态资源。
// 将其配置为 true 之前,确保执行以下代码安装 compression-webpack-plugin 插件(默认是安装的最新版本):
// npm install --save-dev compression-webpack-plugin
productionGzip: true, // 开启 gzip 功能
productionGzipExtensions: ['js', 'css']
}
}
1
2
3
4
5
6
7
8
9
修改 /build/webpack.prod.conf.js 文件配置如下:

if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin')

webpackConfig.plugins.push(
new CompressionWebpackPlugin({
// asset: '[path].gz[query]', // 原配置报错:ValidationError: Compression Plugin Invalid Options
filename: '[path].gz[query]', // 将asset 修改为 filename 后又报错:TypeError: Cannot read property 'emit' of undefined,执行以下操作:npm install --save-dev compression-webpack-plugin@1.1.12
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.build.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
修改服务器的配置,以 Nginx 为例,找到 conf 目录下的 nginx.conf,开启 gzip,并设置 gzip 的类型,如下:

gzip on;
gzip_types text/plain application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
1
2
开启 Gzip 的过程比较波折,请仔细查看注释信息,如有疑问请查看插件的官方文档:
compression-webpack-plugin 插件官方文档
---------------------
作者:Robin_zero
来源:CSDN
原文:https://blog.csdn.net/robin_star_/article/details/83856363
版权声明:本文为博主原创文章,转载请附上博文链接!

vue 应用生产环境的 webpack 打包配置优化的更多相关文章

  1. webpack-dev-middleware 和 webpack-hot-middleware 配置开发环境和生产环境;webpack脚手架;仿vue-cli

    webpack-dev-server更新后自带express服务器,已经不需要自己搭建.vue-cli从17年底左右也换成了最新的webpack-dev-server,而不是用webpack-dev- ...

  2. vue-cli+webpack打包配置

    vue-cli+webpack打包配置 一: 目录结构: ├── README.md ├── build │ ├── build.js │ ├── check-versions.js │ ├── ut ...

  3. 【nodejs代理服务器二】nodejs webpack打包配置踩坑总结

    接着上篇用Nodejs开发web代理,防止web渗透.如果部署到正式环境,需要进行打包配置. 我在用webpack打包配置中遇到了几个错误,总结如下: webpack环境变量问题 https://ww ...

  4. spring boot--日志、开发和生产环境切换、自定义配置(环境变量)

    Spring Boot日志常用配置: # 日志输出的地址:Spring Boot默认并没有进行文件输出,只在控制台中进行了打印 logging.file=/home/zhou # 日志级别 debug ...

  5. Mariadb/MySQL生产环境的my.cnf配置示例

    Mariadb/MySQL生产环境的my.cnf配置示例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.针对MySQL主程序mysqld定义参数[mysqld]  1>. ...

  6. webpack 打包性能优化

    webpack 打包性能优化 开启多线程打包 thread-loader https://www.npmjs.com/package/thread-loader https://github.com/ ...

  7. [原创] 分享一下Sencha 三种环境(开发环境、测试环境、生产环境)的优雅配置方案

    背景介绍: 在一个AspNet MVC Web API的后端Web开发项目中,使用了Sencha6.5+作为前端表现技术. 在进行两种开发框架的物理文件整合的时候,笔者不想把他俩的物理文件都“揉”在一 ...

  8. spring boot实现不同生产环境下的文件配置

    配置不同生产环境 本文适用于开发环境下需要打包项目至生产环境,避免开发环境的配置文件泄露. 设置maven 作用:1. 手动调节运行时的不同环境 2. 打包时可以不会有其它环境的文件 注:每次换环境前 ...

  9. 【原】Storm Local模式和生产环境中Topology运行配置

    Storm入门教程 1. Storm基础 Storm Storm主要特点 Storm基本概念 Storm调度器 Storm配置 Guaranteeing Message Processing(消息处理 ...

随机推荐

  1. Java-线程池专题 (美团面试题)

    去美团面试,问到了什么是线程池,如何使用,为什么要用,以下做个总结 1.什么是线程池:  java.util.concurrent.Executors提供了一个 java.util.concurren ...

  2. JVM(2)--一文读懂垃圾回收

    与其他语言相比,例如c/c++,我们都知道,java虚拟机对于程序中产生的垃圾,虚拟机是会自动帮我们进行清除管理的,而像c/c++这些语言平台则需要程序员自己手动对内存进行释放.虽然这种自动帮我们回收 ...

  3. LeetCode专题-Python实现之第27题:Remove Element

    导航页-LeetCode专题-Python实现 相关代码已经上传到github:https://github.com/exploitht/leetcode-python 文中代码为了不动官网提供的初始 ...

  4. Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署

    一.环境需求 本帖针对的是Linux环境,Windows或其他系统也可借鉴.具体只讲述Jenkins配置以及整个流程的实现. 1.JDK(或JRE)及Java环境变量配置,我用的是JDK1.8.0_1 ...

  5. 流式大数据计算实践(5)----HBase使用&SpringBoot集成

    一.前言 1.上文中我们搭建好了一套HBase集群环境,这一文我们学习一下HBase的基本操作和客户端API的使用 二.shell操作 先通过命令进入HBase的命令行操作 /work/soft/hb ...

  6. LeetCode数组解题模板

    一.模板以及题目分类 1.头尾指针向中间逼近 ; ; while (pos1<pos2) { //判断条件 //pos更改条件 if (nums[pos1]<nums[pos2]) pos ...

  7. [ASP.NET] 如何利用Javascript分割檔案上傳至後端合併

    最近研究了一下如何利用javascript進行檔案分割上傳並且透過後端.特地記錄一下相關的用法 先寫限制跟本篇的一些陷阱 1.就是瀏覽器的支援了 因為本篇有用到blob跟webworker 在ie中需 ...

  8. Spring boot集成spring session实现session共享

    最近使用spring boot开发一个系统,nginx做负载均衡分发请求到多个tomcat,此时访问页面会把请求分发到不同的服务器,session是存在服务器端,如果首次访问被分发到A服务器,那么se ...

  9. Java集合类:"随机访问" 的RandomAccess接口

    引出RandomAccess接口 如果我们用Java做开发的话,最常用的容器之一就是List集合了,而List集合中用的较多的就是ArrayList 和 LinkedList 两个类,这两者也常被用来 ...

  10. 对HTML5的初步认识(一)

    一.概述 1.HTML5是什么? HTML5是最新一代的HTML标准,它不仅拥有HTML中所有的特性,而且增加了许多实用的特性,如视频.音频.画布(canvas)等. 2012年12月17日,万维网联 ...