基于Vue cli生成的Vue项目的webpack4升级

前面的话

本文将详细介绍从webpack3到webpack4的升级过程

相比于webpack3,webpack4可以零配置运行,打包速度比之前提高了90%,可以直接到ES6的代码进行无用代码剔除,新增的optimization使用简单

在未来,CSS、HTMl和文件都会成为原生模块

【0配置】

  webpack4 设置了默认值,以便无配置启动项目

【模块类型】

webpack4提供了5种模块类型

webpack 4 不仅支持本地处理 JSON,还支持对 JSON 的 Tree Shaking。当使用 ESM 语法 import json 时,webpack 会消除掉JSON Module 中未使用的导出。此外,如果要用 loader 转换 json 为 js,需要设置 type 为 javascript/auto

相比于webpack3,webpack4新增了一个mode配置选择,用来表示配置模式的选择情况

包括生产环境production、开发环境devolopment和自定义none这三个选择可选

【开发模式】

【生产模式】

【none】

禁用所有的默认设置

从webpack4开始官方移除了commonchunk插件,改用了optimization属性进行更加灵活的配置,下面来介绍optimization下的一些常用配置项

【minimize】

利用unglifyjsWebpackPlugin插件来压缩模块,生产环境下该值默认为true

【minimier】

可以使用其他插件来执行压缩功能

【splitChunks】

webpack4默认使用splitChunksPlugin插件来实现代码分割功能,来替代webpack3中的commonChunksPlugin插件

【runtimeChunk】

通过设置 runtimeChunk: true 来为每一个入口默认添加一个只包含 runtime 的 chunk

通过提供字符串值,可以使用插件的预设模式

缺省值为false,表示每个入口块默认内嵌runtime代码

【noEmitOnErrors】

只要在编译时出现错误,就使用noEmitOnErrors属性来跳过emit 阶段,用来替代 NoEmitOnErrorsPlugin 插件

【nameModules】

使用可读的模块标识,方便更好的调试。webpack在开发模式下默认开启,生产模式下默认关闭,用来替代 NamedModulesPlugin 插件

下面就基于vue-cli的项目对webpack配置进行升级

1、升级nodejs

使用 webpack4 时,必须保证 Node.js 版本 >= 8.9.4,因为 webpack4 使用了大量的ES6语法,这些语法在 nodejs新版 v8 中得到了原生支持

2、升级webpack主要部件,包括webpack、webpack-bundle-analyzer、webpack-dev-server、webpack-merge

升级的操作很简单,先删除,再安装即可。但要注意的是webpack4版本中 cli 工具分离成了 webpack 核心库 与 webpack-cli 命令行工具两个模块,需要使用 CLI,必安装 webpack-cli 至项目中

3、升级webpack相关插件,包括copy-webpack-plugin、css-loader、eslint-loader、file-loader、html-webpack-plugin、url-loader、friendly-errors-webpack-plugin、optimize-css-assets-webpack-plugin、uglifyjs-webpack-plugin

4、升级vue-loader

由于vue-loader升级到版本15后,配置有较多的变化,稳妥起见,可以只将vue-loader升级到14.4.2

5、替换webpack相关插件,extract-text-webpack-plugin替换为mini-css-extract-plugin

下面对配置文件的修改进行详细说明:

1、webpack.base.conf.js文件

增加node:process.env.NODE_ENV即可

2、webpack.prop.conf.js文件

该文件的配置项较为复杂

(1)将ExtractTextPlugin替换为MiniCssExtraPlugin

(2)删除UglifyJsPlugin配置项

(3)删除CommonsChunkPlugin配置项

(4)添加optimization配置项

Original: https://www.cnblogs.com/xiaohuochai/p/9196906.html
Author: 小火柴的蓝色理想
Title: 基于Vue cli生成的Vue项目的webpack4升级

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547695/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球