女王控的博客

webpack

13 篇文章

缓存报错重试机制探究

背景 在线上部署期间,或者用户长时间没有访问网页等等各种情况,有一定概率会出现以下形式的报错,导致网页白屏 原因与方案 由于现代前端工具链打包出来的,尤其是 webpack 的项目,其主入口默认不缓存,其他文件长期缓存,缓存的文件通过改变文件名(一般是 hash)来更新 所以在部署期间或者用户没有长时间打开网页,可能会请求已被删除的对应的 chunk 或者 chunk… »

CRA 项目构建速度优化

需求背景 由于公司老项目采用 cra 来构建前端项目,在 jenkins 上的平均打包时长在 10 分钟以上,需要优化线上的打包时间,同时优化本地的开发体验 一期优化 主要针对 cra + webpack3/4 进行的优化 具体功能 cra 配置优化 核心:thread-loader 加快首次编译速度,hard-source-webpack-plugin 加快二次编译速度 config-overrides.js Dockerfile 配置缓存优化 需求背景 为了充分利用缓存,采用 docker… »

Webpack 深入学习

基础 简介 entry(入口) 入口起点(entry point)即是 webpack 通过该起点找到本次项目所直接或间接依赖的资源(模块、库等),并对其进行处理,最后输出到 bundle 中。入口文件由用户自定义,可以是一个或者多个,每一个 entry 最后对应一个 bundle。 output(出口) 通过配置 output 属性可以告诉 webpack 将 bundle 命名并输出到对应的位置。 loader webpack 核心,webpack 本身只能识别 js 文件,对于非 js… »

深入理解 Webpack 源码

webpack 构建后代码 打包单一模块 webpack.config.js chunk1.js 打包后,main.js(webpack 生成的一些注释已经去掉) 这其实就是一个立即执行函数,简化一下就是: 看一下自运行的匿名函数里面干了什么: 整个函数里就声明了一个变量 installedModules 和函数 ,并在函数上添加了一个 m,c,p 属性,m 属性保存的是传入的模块数组,c 属性保存的是 installedModules 变量,P… »

Webpack原理入门

概括 Webpack 以其使用简单著称,在使用它的过程中,使用者只需把它当作一个黑盒,需要关心的只有它暴露出来的配置。 本节将带你走进这个黑盒,看看 Webpack 是如何运行的。 基本概念 在了解 Webpack 原理前,需要掌握以下几个核心概念,以方便后面的理解: Entry:入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。 Module:模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry… »

0%