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.nhooo.com/article/160146.htm
(2)使用DllPlugin进行预编译,过程如下:
· npminstallwebpack-cli--save-d
· 独立出一套webpack配置webpack.dll.conf,用dllPlugin定义要打包的dll文件;这里我在根目录下新建webpack.dll.conf.js 内容如下
constpath=require("path"); constwebpack=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:[ newwebpack.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":"npmlinktypescript&&vue-cli-serviceserve", "dll":"webpack-p--progress--config./webpack.dll.conf.js", ··· }, ··· }
· 运行npmrundll命令生成dll
· index.html中加载生成的dll文件
· 以上已经完成预编译并载入;但是一定不要忘记webpack构建时告诉webpack哪些文件已被预编译,使构建过程忽略这些已预编译的文件;
具体做法就是在vue.config.js的配置文件中添加
constwebpack=require("webpack"); module.exports={ ··· configureWebpack:{ plugins:[ newwebpack.DllReferencePlugin({ context:process.cwd(), manifest:require("./public/vendor/vendor-manifest.json") }) ] } ··· }
总结
以上所述是小编给大家介绍的vue-cli3使用DllPlugin实现预编译提升构建速度,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!