-
WebPack-14-hot deploy
模块热替换(hot module replacement)
模块热替换(HMR - hot module replacement)功能会在应用程序运行过程中,替换、添加或删除 模块,而无需重新加载整个页面。
主要是通过以下几种方式,来显著加快开发速度:
保留在完全重新加载页面期间丢失的应用程序状态。
只更新变更内容,以节省宝贵的开发时间。
...
2018-04-23 13:59:43 |
WebPack
-
WebPack-13-mainfest
manifest
在使用 webpack 构建的典型应用程序或站点中,有三种主要的代码类型:
你或你的团队编写的源码。
你的源码会依赖的任何第三方的 library 或 “vendor” 代码。
webpack 的 runtime 和 manifest,管理所有模块的交互。
本文将重点介绍这三个部分中的最后部分:runti...
2018-04-23 13:59:43 |
WebPack
-
WebPack-12-target
target
由于 JavaScript 既可以编写服务端代码也可以编写浏览器代码,所以 webpack 提供了多种部署 target,你可以在 webpack 的配置选项中进行设置。
用法
想设置 target 属性,只需在 webpack 配置中设置 target 字段:
webpack.config.js
module.exports = {
target: 'n...
2018-04-23 13:59:43 |
WebPack
-
WebPack-11-依赖图(dependency graph)
依赖图(dependency graph)
每当一个文件依赖另一个文件时,webpack 都会将文件视为直接存在 依赖关系。这使得 webpack 可以获取非代码资源,如 images 或 web 字体等。并会把它们作为 依赖 提供给应用程序。
当 webpack 处理应用程序时,它会根据命令行参数中或配置文件中定义的模块列表开始处理。
从 入口 开始,webpack 会递归的构建一个...
2018-04-23 13:59:43 |
WebPack
-
WebPack-10-module-federation
Module Federation
动机
多个独立的构建可以组成一个应用程序,这些独立的构建之间不应该存在依赖关系,因此可以单独开发和部署它们。
这通常被称作微前端,但并不仅限于此。
底层概念
我们区分本地模块和远程模块。本地模块即为普通模块,是当前构建的一部分。远程模块不属于当前构建,并在运行时从所谓的容器加载。
加载远程模块被认为是异步操作。当使用远程模块时,这些异步操作将被...
2018-04-23 13:59:43 |
WebPack
-
WebPack-09-模块解析(Module Resolution)
模块解析(Module Resolution)
resolver 是一个帮助寻找模块绝对路径的库。
一个模块可以作为另一个模块的依赖模块,然后被后者引用,如下:
import foo from 'path/to/module';
// 或者
require('path/to/module');
所依赖的模块可以是来自应用程序的代码或第三方库。
resolver 帮助 webpac...
2018-04-23 13:59:43 |
WebPack
-
WebPack-08-modules 模块
模块(Modules)
在模块化编程中,开发者将程序分解为功能离散的 chunk,并称之为 模块。
每个模块都拥有小于完整程序的体积,使得验证、调试及测试变得轻而易举。
精心编写的 模块 提供了可靠的抽象和封装界限,使得应用程序中每个模块都具备了条理清晰的设计和明确的目的。
Node.js 从一开始就支持模块化编程。
然而,web 的 模块化 正在缓慢支持中。 在 web 界存在多...
2018-04-23 13:59:43 |
WebPack
-
WebPack-07-configration 配置
配置(Configuration)
你可能已经注意到,很少有 webpack 配置看起来完全相同。
这是因为 webpack 的配置文件是 JavaScript 文件,文件内导出了一个 webpack 配置的对象。
webpack 会根据该配置定义的属性进行处理。
由于 webpack 遵循 CommonJS 模块规范,因此,你可以在配置中使用:
通过 requir...
2018-04-23 13:59:43 |
WebPack