《玩转webpack》 第四章 进阶篇: 编写可维护的 webpack 构建配置
webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略 05 原理篇:通过源码掌握 webpack 打包原理 06 原理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项目 08 基础篇:webpack 进阶用法 03 构建配置抽离成 npm 包的意义 可维护性 通用性 质量 ·业务开发者无需关注构建配置 ·统一团队构建脚本 ·统一团队构建脚本 ·构建配置合理的拆分 ·README 文档、ChangeLog 文档等 ·冒烟测试、单元测试、测试覆盖率 ·持续集成 构建配置管理的可选方案 将构建配置设计成一个库,比如:hjs-webpack、Neutrino、webpack-blocks 通过多个配置文件管理不同环境的构建,webpack --config 参数进行控制 抽成一个工具进行管理,比如:create-react-app eact-app, kyt, nwb 将所有的配置放在一个文件,通过 --env 参数控制分支选择 构建配置包设计 通过多个配置文件管理不同环境的 webpack 配置 抽离成一个 npm 包统一管理 ·开发环境:webpack.dev.js ·生产环境:webpack.prod.js ·规范:Git commit日志、README、ESLint 规范、Semver 规范 ·质量:冒烟测试、单元测试、测试覆盖率和0 码力 | 30 页 | 5.38 MB | 1 年前3《玩转webpack》 第三章 基础篇 Webpack 进阶用法
基础篇:webpack 与构建发展简史 ⽬目 录 CONTENTS 01 基础篇:webpack 基础⽤用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略略 05 原理理篇:通过源码掌握 webpack 打包原理理 06 原理理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项⽬目 exports = { entry: { index: './src/index.js', search: './src/search.js ‘ } }; 缺点:每次新增或删除⻚页⾯面需要改 webpack 配置 每个⻚页⾯面对应⼀一个 entry,⼀一个 html-webpack-plugin 多⻚页⾯面打包通⽤用⽅方案 动态获取 entry 和设置 html-webpack-plugin 数量量 (匿匿名闭包) · modules 是⼀一个数组,每⼀一项是⼀一个模块初始化函数 · 通过 WEBPACK_REQUIRE_METHOD(0) 启动程序 · __webpack_require ⽤用来加载模块,返回 module.exports scope hoisting 原理理 原理理:将所有模块的代码按照引⽤用顺序放在⼀一个函数作⽤用域⾥里里,然后适当的重命名⼀一 些变量量以防⽌止变量量名冲突0 码力 | 69 页 | 4.33 MB | 1 年前3《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理
基础篇:webpack 与构建发展简史 目 录 CONTENTS 01 基础篇:webpack 基础用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略 05 原理篇:通过源码掌握 webpack 打包原理 06 原理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项目 08 (webpack-command) 这个 npm 包,并且 执行 CLI webpack-cli 做的事情 引入 yargs,对命令行进行定制 分析命令行参数,对各个参数进行转换,组成编译配置项 引用webpack,根据配置项进行编译和构建 从NON_COMPILATION_CMD分析出不需要编译的命令 const { NON_COMPILATION_ARGS } = require("./utils/constants"); //创建一份 webpack 配置文件 "migrate", //进行 webpack0 码力 | 39 页 | 3.66 MB | 1 年前3Gulp 入门指南
实现 Web 前端自动化开发的工具,利用它能够极大的提高开发效率。 在 Web 前端开发工作中有很多“重复工作”,比如压缩CSS/JS文件。而这些工作都是有规律的。找到这 些规律,并编写 gulp 配置代码,让 gulp 自动执行这些“重复工作”。 将规律转换为 gulp 代码 现有目录结构如下: └── js/ └── a.js 规律 1. 找到 js/目录下的所有 .js 文件 文件,压缩它们,将压缩后的文件存放在 dist/js/ 目录下。 gulp 代码 你可以 下载所有示例代码 或 在线查看代码 建议 建议:你可以只阅读下面的代码与注释或同时阅读代码解释 gulp 的所有配置代码都写在 gulpfile.js 文件。 一、新建一个 一、新建一个 gulpfile.js gulpfile.js 文件 文件 chapter2 └── gulpfile.js 二、在 目录下的所有 css 文件,压缩它们,将压缩后的文件存放在 dist/css/ 目录下。 gulp 代码 你可以 下载所有示例代码 或 在线查看代码 当熟悉 使用 gulp 压缩 JS 的方法后,配置压缩 CSS 的 gulp 代码就变得很轻松。 一、安装 gulp-minify-css 一、安装 gulp-minify-css 模块 提示:你需要使用命令行的 cd 切换到对应目录后进行安装操作。0 码力 | 36 页 | 275.87 KB | 1 年前3《玩转webpack》 第二章 基础篇: webpack 基础用法
《玩转 webpack》 基础篇:webpack 与构建发展简史 ⽬目 录 CONTENTS 01 基础篇:webpack 基础⽤用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略略 05 原理理篇:通过源码掌握 webpack 打包原理理 06 原理理篇:编写 Loader 和插件 07 实战篇:React 全家桶 如何将编译后的⽂文件输出到磁盘 Output 的⽤用法:单⼊入⼝口配置 module.exports = { entry: './path/to/my/entry/file.js' output: { filename: 'bundle.js’, path: __dirname + '/dist' } }; Output 的⽤用法:多⼊入⼝口配置 module.exports = { entry: { babel-loader babel的配置⽂文件是:.babelrc 资源解析:增加ES6的babel preset配置 { "presets": [ + "@babel/preset-env” ], "plugins": [ "@babel/proposal-class-properties" ] } 增加 ES6 的 babel preset 配置 资源解析:解析 React0 码力 | 41 页 | 2.52 MB | 1 年前3《玩转webpack》第五章 进阶篇: webpack 构建速度和体积优化策略
基础篇:webpack 与构建发展简史 目 录 CONTENTS 01 基础篇:webpack 基础用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略 05 原理篇:通过源码掌握 webpack 打包原理 06 原理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项目 08 node_modules 目的:尽可能的少构建模块 减少文件搜索范围 优化 resolve.mainFields 配置 优化 resolve.modules 配置(减少模块搜索层级) 优化 resolve.extensions 配置 合理使用 alias 图片压缩 使用:配置 image-webpack-loader 要求:基于 Node 库的 imagemin 或者 tinypng API false 即可 要求:必须是 ES6 的语法,CJS 的方式不支持 · production mode的情况下默认开启 无用的 CSS 如何删除掉? uncss: HTML 需要通过 jsdom 加载,所有的样式通过PostCSS解析,通过 document.querySelector 来识别在 html 文件里面不存在的选择器 PurifyCSS: 遍历代码,识别已经用到的 CSS class0 码力 | 36 页 | 8.13 MB | 1 年前3《玩转webpack》第八章 实战篇: React 全家桶 和 webpack 开发商城项巨
基础篇:webpack 与构建发展简史 ⽬目 录 CONTENTS 01 基础篇:webpack 基础⽤用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 构建速度和体积优化策略略 05 原理理篇:通过源码掌握 webpack 打包原理理 06 原理理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项⽬目 优化 · 打开 Webview 的同时并⾏行行的加载⻚页⾯面数据 功能开发要点 · 浏览器器端: · 服务端: · MVC 开发⽅方式,数据库基于 Sequelize · Rest API ⻛风格 ·采⽤用 JWT 进⾏行行鉴权 ·组件化,组件颗粒度尽可能⼩小 ·直接复⽤用 builder-webpack-geektime 的构建配置,⽆无需关注构建脚本 源码和演示地址 · 源码:0 码力 | 25 页 | 5.67 MB | 1 年前3《玩转webpack》加餐:webpack5专题
<= 11 或 2009 =< ecmaVersion <= 2020 开创性的特性:模块联邦 发明者:Zack Jackson 基本解释:使 ⼀个JavaScript 应⽤在运⾏过程中可以动态加载另⼀个应⽤的代码,并⽀持共享依赖(CDN)。不再需要 本地安装 npm 包。 • Remote:被依赖⽅,被 Host 消费的 webpack 构建 • Host:依赖⽅,消费其他 Remote 越来越多的应⽤在主流⽹站 bundle bundless a.js b.js c.js d.js bundle.js a.js b.js c.js d.js 资源加载的差异 资源加载的差异 - bundle 资源加载的差异 - bundless bundless 的冷启动时间大大缩短 bundless 的 HMR 速度不受整个项目体积影响 bundless 的单文件粒度的缓存更优0 码力 | 40 页 | 12.03 MB | 1 年前3《玩转webpack》 第一章 基础篇: webpack 与构建发展简史
webpack 构 建配置,和 webpack 打包优化 详细剖析 webpack 打包原理理 和插件、Loader 的实现 从实际 Web 商城项⽬目出发, 讲解 webpack 实际使⽤用 基础篇:webpack 与构建发展简史 ⽬目 录 CONTENTS 01 基础篇:webpack 基础⽤用法 02 进阶篇:编写可维护的 webpack 构建配置 04 进阶篇:webpack 816,228 为什什么选择 webpack? 社区⽣生态丰富 配置灵活和插件化扩展 官⽅方更更新迭代速度快 初识 webpack:配置⽂文件名称 可以通过 webpack --config 指定配置⽂文件 webpack 默认配置⽂文件:webpack.config.js 初识 webpack:webpack 配置组成 module.exports = { entry: './src/index new HtmlwebpackPlugin({ template: './src/index.html’ }) ] }; 打包的⼊入⼝口⽂文件 打包的输出 环境 Loader 配置 插件配置 ·································· ································· ·····································0 码力 | 17 页 | 690.93 KB | 1 年前3Rspack 基于 Rust 的高性能Web 构建工具
巨型项目中 Build 时间 10-20 分钟,甚至更久,拖慢 CI/CD 效率 Rspack 解决了什么问题? ??? 灵活丰富的配置 不止覆盖 Web 开发场景,能够应对各种场景 Rspack 解决了什么问题? ??? 强大的生产环境优化 强大可自定义配置的拆包能力等决定了产物的性能 Rspack 解决了什么问题? ??? ♂️ 方便从原有方案(Webpack)迁移 用最小的成本优化巨型项目的开发体验 hmr 18s 1.4s 13 倍 Rspack 有哪些特性? ??? 与 Webpack 部分兼容 The subset of Webpack! Rspack 有哪些特性? ⚙️ 常用配置兼容 Rspack 有哪些特性? ??? 常用 Loader 兼容 • babel-loader • style-loader • css-loader • postcss-loader 平滑! 得益于与 Webpack 良好的兼容性! 如何从 Webpack 迁移到 Rspack? ✅ 宽松模式 • 目前并不支持所有 webpack 配置,且有些配置会影响产物,为了保 证产物的正确性,Rspack 默认开启了对配置的严格校验 如何从 Webpack 迁移到 Rspack? ??? Rust is faster than JavaScript • 优先使用内置功能0 码力 | 29 页 | 4.51 MB | 1 年前3
共 11 条
- 1
- 2