一文彻底解决新手对 webpack 的恐惧!【上篇】

2022-05-16  本文已影响0人  懂会悟

前言

首先抛出结论,webpack是一个非常简单的工具,毫无难度可言。webpack阻碍很多人的根本原因是大家对一些概念的不熟悉、对webpack丰富的loader和plugin望而怯步。当你把概念弄清楚后,你自然而然的就知道自己需要什么loader和plugin了。

看完后你一定会说:“就这?webpack就这?”。

个人建议:例如create-react-app就是一个很好的脚手架,你可以写不出这样的脚手架,但你一定要能看懂,在你有需要的时候有能力去修改源码。webpack掌握到这个程度很多时候就完全够用了。在最后我还会补充如何自己写一个loader和plugin(不过我相信不用到最后,认真阅读的你就已经知道要如何编写了)

准备环境、版本

node: ^12.16.1

webpack: ^4.44.2

webpack-cli: ^3.3.12

webpack5升级了一些新特性,所以我们这篇文章以目前常用的webpack4来讲解。不过完全不用担心都出5了怎么还学4的问题,道理都是相通的,4都会了,5它不就是多点新特性了吗

你必须知道的知识

1、webpack概念

webpack是一个现代JavaScript应用程序的静态模块打包器。如果你接触js够早的话,你一定知道最初的工程可没有这样的打包工具,一个文件就相当于一个模块,最终这些文件需要按照一定的顺序使用script标签引入html(因为如果顺序不对就会导致依赖变量丢失等错误问题)。

但是这个写项目不仅麻烦而且不优雅,随着node.js的出现和发展,才出现了这类基于node.js运行的打包工具(gulp、grunt,以及现在最流行的webpack),因为node.js拥有可对文件操作的能力。所以webpack本质就是为我们打包js的引用,而我们常听到各种loader、各种plugin、热更新、热模块替换等等都是webpack的一个升华,使得webpack能为我们提供更多的帮助。

style-loader  
css-loader  
sass-loader  
ts-loader  
file-loader  
babel-loader  
postcss-loader 
...

弄明白这些东西

补充知识点(重要)

// 在.browserslistrc中的写法  
> 1%  
last 2 versions  

// 还可以配置不同环境下的规则(在.browserslistrc中)  
[production]  
> 1%  
ie 10  

[development]  
last 1 chrome version  
last 1 firefox version  

// 在package.json中的写法  
{  
  "browserslist": ["> 1%", "last 2 versions"]  
}  

// 还可以配置不同环境下的规则(在package.json中)  
// production和development取决你webpack中mode字段的配置  
{  
  "browserslist": {  
  "production": [  
  ">0.2%",  
  "not dead",  
  "not op_mini all"  
 ],  
   "development": [  
   "last 1 chrome version",  
   "last 1 firefox version",  
   "last 1 safari version"  
  ]  
 }  
 }  

“> 1%”表示兼容市面上使用量大于百分之一的浏览,“last 1 chrome version”表示兼容到谷歌的上一个版本,具体的可以使用命令npx browserslist "> 1%"的方式查看都包含了哪些浏览器

执行 npx browserslist "> 1%"
chrome 100
chrome 99
edge 100
firefox 99
ios_saf 15.4
ios_saf 15.2-15.3
ios_saf 14.5-14.8
op_mini all
safari 15.4
samsung 16.0

在webpack构建中入口是chunks,出口是chunk(知道这个概念就行)

上一篇 下一篇

猜你喜欢

热点阅读