js知识点 掘金_关于webpack4的14个知识点,童叟无欺

没有什么比时间更具有说服力了,因为时间无需通知我们就可以改变一切。

最近工作中用到了nuxt,才发现,如果webpack学的6,nuxt基本不需要学习,没什么学习成本的,因此,这篇重新记录下webpack4的一些基础知识点,下一篇将会配置一个优化到极致的react脚手架,也希望大家能够持续关注,配置webpack就是优化优化再优化,哈哈~

酒壮怂人胆,我学这个的办法基本就分3步:

  1. 首先,将这些必要的配置,以及某些loader,某些插件,像语文课文一样默读,并背诵(这一步最重要)
  2. 动手去实践,去试错
  3. 理解其原理

好了,正式开始

前言

Webpack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。

WebPack和Grunt以及Gulp相比有什么特性

其实Webpack和另外两个并没有太多的可比性,Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack在很多场景下可以替代Gulp/Grunt类的工具。

  1. Entry:入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。
  2. Module:模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。
  3. Chunk:代码块,一个 Chunk 由多个模块组合而成,用于代码合并与分割。
  4. Loader:模块转换器,用于把模块原内容按照需求转换成新内容。
  5. Plugin:扩展插件,在 Webpack 构建流程中的特定时机注入扩展逻辑来改变构建结果或做你想要的事情。
  6. Output:输出结果,在 Webpack 经过一系列处理并得出最终想要的代码后输出结果。

1. 从0开始配置结构

  • 初始化项目结构
29f8a7c9dd4198becbfb03ca2e4e7325.png

2. 配置webpack.config.js

  • 在项目根目录新建webpack.config.js
00b7e4cda92c6b9f9cd9f3ae30768caa.png

3. 配置开发服务器

e3a7eb49664d47a1b6e9229f0da189fe.png

4. 打包js

45d3e0b08b604349e2377e27796ca142.png

5. 支持ES6,react,vue

19a96e534371c5adccd12dd11eeea8ec.png

6. 处理css,sass,以及css3属性前缀

处理css

a5ece6f296e3d008d4023daa2d2709f8.png

动态卸载和加载CSS

style-loader为 css 对象提供了use()和unuse()两种方法可以用来加载和卸载css

比如实现一个点击切换颜色的需求,修改index.js

3a670c345c0f7b72813320e217f8c4e2.png

处理sass

89c61b01417b836140aac0c353f783b9.png

提取css文件为单独文件

e18a4f1cabb9358dd595b53132360c3f.png

7.产出html

d3135ad61d30bff8553643f1e7f7b6bc.png

8. 处理引用的第三方库,暴露全局变量

webpack.ProvidePlugin参数是键值对形式,键就是我们项目中使用的变量名,值就是键所指向的库

9c765acb1efcc503841ec0e044751485.png

9. code splitting、懒加载(按需加载)

说白了就是在需要的时候在进行加载,比如一个场景,点击按钮才加载某个js.

df57820cc15cf473b17a8b91c7243005.png

10. JS Tree Shaking

27f68e5da5b5affa6ccf847c548fe5c0.png

11. 图片处理

18f1664abf1ebdf06497064c823c31df.png

12. Clean Plugin and Watch Mode

清空目录,文件有改动就重新打包

015c2e472b2cd7e1ac61e66df2b99c37.png

13. 区分环境变量

866fdd25dfc6138d952f9ced43f19d56.png

14. 开发模式与webpack-dev-server,proxy

5186997dc1df7f491f5bb1244ff24cf9.png

到这里基本就结束了,觉得有帮助,不妨点个,不足之处,还望斧正~

有喜欢的小伙伴们 可以动手关注下哦 我是搬运工 哪里需要搬哪里。

作者:张不怂

链接:https://juejin.im/post/5cea1e1ae51d4510664d1652

来源:掘金

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值