vue-cli3如何使用 DllPlugin 如何实现预编译提升构建速度

看,田野里的玉米露出了笑脸,秋风吹过,闪烁着太阳的光芒,秋天是金色的。看满山的枫叶,红得就像一团火焰在熊熊燃烧,散发着生机,秋天是红色的。呵呵,我们都错了,秋天不是金黄的,也不是红色的,秋天是五颜六色的。

在项目打包上有两个目标:减少打包代码体积和加快打包速度

1. 减少打包体积:

(1)对于用的比较少的库,可以去掉(我去掉了jquery以及lodash),用到的地方,参考源码自己写

(2)非用不可的又比较大的库(我这里用了monaco-edit),使用cdn方式引入

打包体积减少的情况下,自然速度也会有所提升

2. 加快打包速度:

我目前做了这些:

(1)vue-cli2升级到vue-cli3,顺便webpack2升级到webpack4,构建速度一下子从3分钟左右提升到不到1分钟(vue-cli3升级过程 https://www.haodaima.com/article/160146.htm

(2)使用 DllPlugin 进行预编译,过程如下:

· npm install webpack-cli --save-d

· 独立出一套webpack配置webpack.dll.conf,用dllPlugin定义要打包的dll文件;这里我在根目录下新建webpack.dll.conf.js 内容如下

const path = require("path");
const webpack = require("webpack");
module.exports = {
 entry: {
 vendor: [
  "vue-router/dist/vue-router.esm.js",
  "vuex/dist/vuex.esm.js",
  "axios"
 ]
 },
 output: {
 path: path.join(__dirname, "public/vendor"),
 filename: "[name].dll.js",
 library: "[name]_[hash]" // vendor.dll.js中暴露出的全局变量名
 },
 plugins: [
 new webpack.DllPlugin({
  path: path.join(__dirname, "public/vendor", "[name]-manifest.json"),
  name: "[name]_[hash]",
  context: process.cwd()
 })
 ]
};

注意;在vue-cli3中一定要把生成的dll放到public中或者自己去配置publicPath (没仔细看文档掉进坑)

· package.json中定义运行webpack.dll.conf.js的命令

{
···
 "scripts": {
 "serve": "npm link typescript && vue-cli-service serve",
 <strong>"dll": "webpack -p --progress --config ./webpack.dll.conf.js",</strong>
···
 },
···
} 

· 运行npm run dll命令生成dll

· index.html中加载生成的dll文件

<script src="./vendor/vendor.dll.js"></script>

· 以上已经完成预编译并载入;但是一定不要忘记webpack构建时告诉webpack哪些文件已被预编译,使构建过程忽略这些已预编译的文件;

具体做法就是在vue.config.js的配置文件中添加

const webpack = require("webpack");
module.exports = {
···
 configureWebpack: {
 plugins: [
  new webpack.DllReferencePlugin({
  context: process.cwd(),
  manifest: require("./public/vendor/vendor-manifest.json")
  })
 ]
 }
···
} 

总结

以上所述是小编给大家介绍的vue-cli3使用 DllPlugin 实现预编译提升构建速度 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

本文vue-cli3如何使用 DllPlugin 如何实现预编译提升构建速度到此结束。自爱,是生命守护的天使。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
Vue路由参数的传递与获取方式详细介绍

vue学习记录之动态组件浅析

如何解决ElementUI组件中el-upload上传图片不显示问题

解读element el-upload上传的附件名称不显示 file-list赋值

一篇关于el-table-column的formatter的如何使用及说明