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


Posted in Javascript onApril 24, 2019

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

1. 减少打包体积:

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

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

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

2. 加快打包速度:

我目前做了这些:

(1)vue-cli2升级到vue-cli3,顺便webpack2升级到webpack4,构建速度一下子从3分钟左右提升到不到1分钟(vue-cli3升级过程 https://3water.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 实现预编译提升构建速度 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
Nov 07 Javascript
求解开jscript.encode代码的asp函数
Feb 28 Javascript
asp.net HttpHandler实现图片防盗链
Nov 09 Javascript
javascript实现禁止右键和F12查看源代码
Dec 26 Javascript
js实现select二级联动下拉菜单
Apr 17 Javascript
JavaScript输出所选择起始与结束日期的方法
Jul 12 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
May 07 Javascript
vue给组件传递不同的值方法
Sep 29 Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 Javascript
JS实现动态星空背景效果
Nov 01 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
Jul 26 Javascript
vue改变对象或数组时的刷新机制的方法总结
Apr 24 #Javascript
详解Vue源码中一些util函数
Apr 24 #Javascript
vue-cli3 DllPlugin 提取公用库的方法
Apr 24 #Javascript
VUE 实现复制内容到剪贴板的两种方法
Apr 24 #Javascript
详解一个小实例理解js原型和继承
Apr 24 #Javascript
微信小程序实现的一键复制功能示例
Apr 24 #Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
Apr 24 #Javascript
You might like
QueryPath PHP 中的jQuery
2010/04/11 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
jQuery实现只允许输入数字和小数点的方法
2016/03/02 Javascript
基于JavaScript实现随机颜色输入框
2016/12/10 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
vue.js实现图书管理功能
2019/09/24 Javascript
Python写的Socks5协议代理服务器
2014/08/06 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
python实现简单的购物程序代码实例
2020/03/03 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
AmazeUI中各种的导航式菜单与解决方法
2020/08/19 HTML / CSS
内科护士实习自我鉴定
2013/10/17 职场文书
认识深刻的检讨书
2014/02/16 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
医生见习报告范文
2014/11/03 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python