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 相关文章推荐
javascript实现数字+字母验证码的简单实例
Feb 10 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 Javascript
灵活使用数组制作图片切换js实现
Jul 28 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
Dec 08 Javascript
vue元素实现动画过渡效果
Jul 01 Javascript
vue.js异步上传文件前后端实现代码
Aug 22 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
ElementUI radio组件选中小改造
Aug 12 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
Aug 12 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
Dec 01 Javascript
jQuery实现查看图片功能
Dec 01 jQuery
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
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
浅谈php和.net的区别
2014/09/28 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
提交表单后 PHP获取提交内容的实现方法
2016/05/25 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
JS 文件大小判断的实现代码
2010/04/07 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
使图片旋转的3种解决方案
2013/11/21 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
2015/11/18 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
详解ES6中的let命令
2020/04/05 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
2019/12/06 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
python读取并定位excel数据坐标系详解
2019/06/26 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
民警个人对照检查剖析材料
2014/09/17 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
电影雨中的树观后感
2015/06/15 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS