前言
同学,你平时用vue-cli构建你的vue项目么,你有研究过vue-cli生成的目录结构和文件里的代码么,你是否看到webpack的官方文档然后从入门到放弃呢,让我们用对新人更友好的姿势学习webpack,进阶webpack配置工程师😂,定制属于你自己的webpack吧😎,happy hacking!😄
ps:如果你是在手机上浏览,横屏体验更好哦~
webpack简介
webpack的核心定义: 一个模块打包器(能识别ES Moudule和CommonJS规范和其他如css格式的文件)
一图胜百文,如下是webpack官网的示意图,在webpack的世界里,一切资源都是模块,包括代码文件、图片文件、字体文件等,webpack会处理这些模块的依赖关系,大白话就是顺藤🌿摸✋瓜🍉,找到你项目用到的所有的资源文件,然后打包成我们想要的静态资源
核心概念
我们写webapck的config对象主要是在写如下的配置
¶entry–入口
配置entry就是告诉webpack那条腾的根在哪里,也就是src/main.js
¶output–出口
配置output就是告诉webpack摸到的瓜要放在哪里,一般是dist目录
¶loader–加载器
webpack里每种模块都有它对应的loader去加载,我们在config.module.rules数组里面告诉webpack处理不同类型的模块的规则,也就是怎么加工🍴各种各样的瓜🍉,如果一个模块需要好几个loader逐步处理,比如iview组件库推荐我们当test遇到.vue结尾的文件,先用iview-loader处理,再交给vue-loader处理,按照use数组逆序来处理
1 | { |
¶plugins-插件
webpack里,loader不干的活儿都交给plugins,常用的有
html-webpack-plugin 提供vue实例挂载的模板
extract-text-webpack-plugin 生产环境提取css代码为外部样式
uglifyjs-plugin 压缩js代码,不知道大神为啥给插件取这样的一个丑名字😹¶env–环境
webpack有开发环境和生产环境
¶development–开发环境
在开发环境里我们配置devserver,设置http代理,让我们愉快的享受热更替,享受爬坑提醒
¶production–生产环境
在生产环境里我们提取css为外部样式,分割出vue等类库的源码,压缩代码,生成资源的哈希以便利用长缓存
本文源码
本文的源码在 https://github.com/atbulbs/webpack-learning
欢迎在github上为我点星星Star⭐️,欢迎转发,也欢迎戳一下文章末尾的点击打赏
源码使用说明
下载代码
1 | $ git clone https://github.com/atbulbs/webpack-learning.git |
进入webpack3文件夹
1 | $ cd webpack3 |
安装依赖
1 | $ npm i |
启动开发服务器,请修改自动打开的地址栏url为localhost:8000或者127.0.0.1:8000
如果你用自己的源代码文件夹替换了src目录,请在webpack.config.js文件里设置你的代理服务器的IP
1 | $ npm run dev |
打包项目代码,根目录下会多出一个dist目录
1 | $ npm run build |
启动部署服务器,请在server.js文件里设置你的代理服务器的IP,在地址栏输入localhost:8001或者127.0.0.1:8001
1 | $ cd server |
目录结构📂
1 | webpack3 // 项目根目录 |
来不及解释了,快上码🚗
¶vue-loader的配置
1 | /** |
¶webpack的基本配置
1 | /** |
¶webpack的开发环境和生产环境的配置
1 | /** |
¶部署服务器的脚本文件
1 | /** |
ps: 本文的配置是基于webpack3.0版本的,后期会出webpack4.0版本的配置,欢迎关注
本文的源码在 https://github.com/atbulbs/webpack-learning
欢迎在github上为我点星星Star⭐️,欢迎转发,也欢迎戳一下文章末尾的点击打赏