webpack的详细注解

环境参数和预备技能:

在这里插入图片描述

webpack是什么

在这里插入图片描述

webpack的五个核心概念

Entry

入口

Output

输出,资源的命名等

Loader

处理非js资源

Plugins

执行更广泛的任务,从打包优化和压缩,一直到重新定义环境中的变量等

Mode

开发模式和生产模式
在这里插入图片描述

webpack的基本使用

下载两个包。
在这里插入图片描述
在这里插入图片描述
生产环境下的多了压缩。
无法打包样式文件。
在这里插入图片描述
在这里插入图片描述

打包样式资源

我们先要定义一个配置文件。
在这里插入图片描述
在这里插入图片描述

项目代码我们基于ES6模块化,项目代码我们基于common JS模块化。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
样式中的详细配置。
在这里插入图片描述
npm init
初始化包文件。
下载两个包。
在这里插入图片描述
在这里插入图片描述
运行一下。指令:webpack
在这里插入图片描述
less需要添加一个规则。
在这里插入图片描述

在这里插入图片描述

打包html资源

在这里插入图片描述
下载插件。
在这里插入图片描述
引入插件,是一个构造函数。
在这里插入图片描述
使用。
在这里插入图片描述会帮我们自动引入在入口文件标识要引入的文件。

打包图片资源

使用loader处理图片资源。
在这里插入图片描述
下载两个包。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上述的处理不了html的文件,所以我们要将html引进来,让url去解析,但是url解析使用的是es6的解析规则,html使用的commonJS的规则,我们我们关掉es解析模块。

在这里插入图片描述
不希望名字太长的话,我们可以对图片重命名。
在这里插入图片描述

打包其他资源

比如字体图标。
我们推荐阿里的图标库。
在这里插入图片描述
把其他打包的资源排除,使用我们的file-loader打包其他资源。
在这里插入图片描述
在这里插入图片描述

devServer

在这里插入图片描述
我们需要下载这个包。
在这里插入图片描述
包是本地安装的,所以需要用npx启动。
在这里插入图片描述
监视源代码的变化,一旦发现变化,就会自动编译。再也不需要我们重新打包查看效果。
自动打开浏览器。
在这里插入图片描述

开发环境基本配置

开发环境基本配置,能让代码运行。
在这里插入图片描述
资源越来越多,需要我们划分好目录。css样式文件也被打包到js文件中。

构建环境介绍

webpack将我们的文件打包成浏览器能够识别的文件。

提取css成单独文件

下载一个插件。
在这里插入图片描述
我们先引入这一个插件。
在这里插入图片描述
在这里插入图片描述
引入生成的单独css文件。
在这里插入图片描述
对我们输出的css文件进行重命名。
在这里插入图片描述

css兼容性处理

在这里插入图片描述
下载好两个包。
在这里插入图片描述
在这里插入图片描述
配置一下package.json
在这里插入图片描述
在这里插入图片描述
设置nodejs的环境变量。
在这里插入图片描述
配置一下。
在这里插入图片描述

压缩css

压缩css的插件。
在这里插入图片描述
引入。
在这里插入图片描述
调用。
在这里插入图片描述

js语法检查eslint

需要两个库。
在这里插入图片描述
只检查自己写的源代码。
在这里插入图片描述
推荐的语法检查的库。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载这些包。
在这里插入图片描述
package.json中的配置。
在这里插入图片描述
让它自动修改。
在这里插入图片描述
有时候我们需要保留某些代码。忽略检查!
在这里插入图片描述

js兼容性处理eslint

下载插件。
在这里插入图片描述
在这里插入图片描述
进行配置。
在这里插入图片描述
将es6的语法转化成es5的语法。
没办法解决promise。
在这里插入图片描述
引入文件。
在这里插入图片描述
解决全部的兼容性问题。
在这里插入图片描述
所以我们还是推荐按需下载。
在这里插入图片描述
下载一个包,然后进行一些配置。使用第三种方案就不能使用第二种方案。
在这里插入图片描述

压缩html和js

生产环境就会自动压缩js代码。
在这里插入图片描述
html不需要进行兼容性处理。进行一些配置。
在这里插入图片描述

生产环境基本配置

在这里插入图片描述

在这里插入图片描述
注意顺序。
在这里插入图片描述
复用loader的代码。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

性能优化介绍

在这里插入图片描述

HMR

比如,我们希望样式文件变化的时候,其他文件不要重新打包。所以,我们应该使用热模块。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
html文件只有一个文件,一旦发生变化,反正都要变化,不需要做热模块。
在这里插入图片描述
我们需要对js的代码做hmr。
在这里插入图片描述

在这里插入图片描述
入口文件反正需要发生改变。
在这里插入图片描述

source-map

在这里插入图片描述
构建后映射的文件。
在这里插入图片描述
包含不同的参数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最佳方案:eval-source-map
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最佳方案:source-map

oneOf

让loader的处理性能更好。只会使用一个loader针对一个文件。
在这里插入图片描述
希望执行两个loader的话,我们要将代码不放在oneOf里面。单独放。
在这里插入图片描述

缓存

在这里插入图片描述

服务器代码

在这里插入图片描述
在这里插入图片描述
实现缓存之后,资源在用户端就会有1小时的强制缓存,如果此时出现了一个bug,我们的程序员修改了,但是重新打包上线的话,我们的资源因为被强制在用户端缓存了,不会再去服务端请求资源。所以我们更新资源的时候,我们为文件名添加版本号,让客户端重新请求资源。
每次打包都会生成一个哈希值。
在这里插入图片描述
我们给文件带上一个哈希值进行处理。
在这里插入图片描述
在这里插入图片描述
总结:

  1. babel缓存
    在这里插入图片描述
  2. 文件资源缓存
    在这里插入图片描述

chunk–代码块。
在这里插入图片描述

tree shaking

在这里插入图片描述

code split

在这里插入图片描述
多入口输出多个文件。
在这里插入图片描述
split——
在这里插入图片描述

将代码分开打包。公共文件打包成一起。
在这里插入图片描述
取一个固定名字。
在这里插入图片描述

懒加载和预加载

懒加载。按需加载,我们需要用到的时候才加载文件。
在这里插入图片描述
预加载。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
预加载慎用,有很多兼容性问题。

PWA

PWA——渐进式网络开发程序。
下载好包。
在这里插入图片描述
配置一下插件。
在这里插入图片描述
在这里插入图片描述

插件帮我们生成文件。
全局资源加载好以后就注册。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

多进程打包

在这里插入图片描述
在这里插入图片描述
thread-loader放在某一个loader的后面,就会使得该进程变多进程。

externals

忽略某些包的打包。
在这里插入图片描述

dll

可以对代码进行单独打包。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

性能优化总结

在这里插入图片描述
在这里插入图片描述

webpack配置详细之entry

三种取值情况。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

webpack配置详细之output

在这里插入图片描述

webpack配置详细之module

在这里插入图片描述
在这里插入图片描述

webpack配置详细之resolve

在这里插入图片描述

webpack配置详细之devServer

在这里插入图片描述
在这里插入图片描述

webpack配置详细之optimizaition

在生产环境才有意义。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载并引入一个库,使用插件。

在这里插入图片描述
在这里插入图片描述

webpack5介绍和使用

webpack的下载。
在这里插入图片描述
配置文件更加简单。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值