「 TOOLS 」
August 03, 2018
Words count
9.3k
Reading time
8 mins.
Webpack 通过 Plugin 机制让其更加灵活,以适应各种应用场景。 在 Webpack 运行的生命周期中会广播出许多事件,Plugin 可以监听这些事件,在合适的时机通过 Webpack 提供的 API 改变输出结果。
一个最基础的 Plugin 的代码是这样的:
class BasicPlugin{
// 在构造函数中获取用户给该插件传入的配置
construcor(options){
}
apply(compiler){
// Webpack ...
Read article
「 TOOLS 」
August 03, 2018
Words count
9.8k
Reading time
9 mins.
Loader 就像是一个翻译员,能把源文件经过转化后输出新的结果,并且一个文件还可以链式的经过多个翻译员翻译。
以处理 SCSS 文件为例:
SCSS 源代码会先交给 sass-loader 把 SCSS 转换成 CSS;
把 sass-loader 输出的 CSS 交给 css-loader 处理,找出 CSS 中依赖的资源、压缩 CSS 等;
把 css-loader 输出的 CSS 交给 style-loader 处理,转换成通过脚本加载的 JavaScript 代码;
module.exports...
Read article
「 原理及实现 」
August 03, 2018
Words count
5.4k
Reading time
5 mins.
Webpack 以其使用简单著称,在使用它的过程中,使用者只需把它当作一个黑盒,需要关心的只有它暴露出来的配置。 本节将带你走进这个黑盒,看看 Webpack 是如何运行的。
在了解 Webpack 原理前,需要掌握以下几个核心概念,以方便后面的理解:
- entry: 入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。
- module: 模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。...
Read article
「 JS 」
August 01, 2018
Words count
3.6k
Reading time
3 mins.
延迟加载图片的目的在于,在发出对应的网络请求之前你要一直等到用户滚动页面让图片进入可见区域。如果你的网页包括了多张图片,但你只在每张图片滚动到视区时才加载,你将最终会节省带宽并确保你的网页加载的更快。
为了让你在实际中了解这一点,让我们想象下面这个页面,他有三张图片。
如果用户访问页面时仅看到了第一张图,我们并不想加载网页底部的比萨图片,除非用户向下滚动直到图片真正进入视区。如果我们延迟加载图片,这意味着用户只在他们需要时下载他们需要的东西,这让你的网页更加精简。
对于更有经验的开发者,你也...
Read article
「 Article 」
July 27, 2018
Words count
12k
Reading time
11 mins.
说道fetch就不得不提XMLHttpRequest了,XHR在发送web请求时需要开发者配置相关请求信息和成功后的回调,尽管开发者只关心请求成功后的业务处理,但是也要配置其他繁琐内容,导致配置和调用比较混乱,也不符合关注分离的原则;fetch的出现正是为了解决XHR存在的这些问题。例如下面代码:
fetch(url).then(function(response){
return response.json();
}).then(function(data){
console...
Read article