《玩转webpack》 第三章 基础篇 Webpack 进阶用法map作为DataURI嵌⼊入,不不单独⽣生成.map⽂文件 module:包含loader的sourcemap source map 类型 基础库分离 ·思路路:将 react、react-dom 基础 包通过 cdn 引⼊入,不不打⼊入 bundle 中 ·⽅方法:使⽤用 html-webpack- externals-plugin 利利⽤用 SplitChunksPlugin 进⾏行行公共脚本分离 异步引⼊入的库进⾏行行分离(默认) · initial 同步引⼊入的库进⾏行行分离 · all 所有引⼊入的库进⾏行行分离(推荐) 利利⽤用 SplitChunksPlugin 分离基础包 test: 匹配出需要分离的包 module.exports = { optimization: { splitChunks: { cacheGroups: { commons: { test: /(react|react-dom)/ cacheGroups: { commons: { name: 'commons', chunks: 'all', minChunks: 2 } } } } } }; minuSize: 分离的包体积的⼤大⼩小 tree shaking(摇树优化) 概念:1 个模块可能有多个⽅方法,只要其中的某个⽅方法使⽤用到了了,则整个⽂文件都会被打到 bundle ⾥里里⾯面去,tree shaking0 码力 | 69 页 | 4.33 MB | 1 年前3
《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理运行某个命令 const isInstalled = packageName =>{...}; //3. 判断某个包是否安装 const CLIs =[...]; (installedClis.length === 1){...}else{...}. 启动后的结果 webpack 最终找到 webpack-cli (webpack-command) 这个 npm 包,并且 执行 CLI webpack-cli 做的事情 引入 yargs,对命令行进行定制 分析命令行参数,对各个参数进行转换,组成编译配置项 引用webpack,根据配置项进行编译和构建 //返回与本地环境相关的一些信息 ]; webpack-cli 提供的不需要编译的命令 命令行工具包 yargs 介绍 提供命令和分组参数 动态生成 help 帮助信息 webpack-cli 使用 args 分析 参数分组 (config/config-args.js),将命令划分为9类:0 码力 | 39 页 | 3.66 MB | 1 年前3
《玩转webpack》第七章 原理篇: 编写 Loader 和插件throw new Error(“ Error Message”) 通过 Compilation 进行文件写入 Compilation 上的 assets 可以用于文件写入 ·可以将 zip 资源包设置到 compilation.assets 对象上 文件写入需要使用 webpack-sources (https://www.npmjs.com/package/webpack- sources) ·html-webpack-plugin-after-emit (Async) 编写一个压缩构建资源为zip包的插件 要求: ·生成的 zip 包文件名称可以通过插件传入 ·需要使用 compiler 对象上的特地 hooks 进行资源的生成 准备知识:Node.js 里面将文件压缩为 zip 包 使用 jszip (https://www.npmjs.com/package/jszip) var hooks Hooks 是 emit,是一个异步的 hook (AsyncSeriesHook) emit 生成文件阶段,读取的是 compilation.assets 对象的值 ·可以将 zip 资源包设置到 compilation.assets 对象上0 码力 | 29 页 | 4.37 MB | 1 年前3
《玩转webpack》 第四章 进阶篇: 编写可维护的 webpack 构建配置打包原理 06 原理篇:编写 Loader 和插件 07 实战篇:React 全家桶 和 webpack 开发商城项目 08 基础篇:webpack 进阶用法 03 构建配置抽离成 npm 包的意义 可维护性 通用性 质量 ·业务开发者无需关注构建配置 ·统一团队构建脚本 ·构建配置合理的拆分 ·README 文档、ChangeLog 文档等 ·冒烟测试、单元测试、测试覆盖率 抽成一个工具进行管理,比如:create-react-app, kyt, nwb 将所有的配置放在一个文件,通过 --env 参数控制分支选择 构建配置包设计 通过多个配置文件管理不同环境的 webpack 配置 抽离成一个 npm 包统一管理 ·开发环境:webpack.dev.js ·生产环境:webpack.prod.js ·规范:Git commit日志、README、ESLint0 码力 | 30 页 | 5.38 MB | 1 年前3
《玩转webpack》第五章 进阶篇: webpack 构建速度和体积优化策略分包:设置 Externals 思路:将 react、react-dom 基础包通过 cdn 引入,不打入 bundle 中 方法:使用 html-webpack-externals- plugin 进一步分包:预编译资源模块 思路:将 react、react-dom、redux、react-redux 基础包和业务基础包打包成一个文件 方法:使用 DLLPlugin 进行分包,DllReferencePlugin0 码力 | 36 页 | 8.13 MB | 1 年前3
Gulp 入门指南gulp npm 是 node 的包管理工具,可以利用它安装 gulp 所需的包。(在安装 node 时已经自动安装了 npm) 在命令行输入 npm install -g gulp 若一直没安装成功,请使用 cnpm 安装(npm的国内加速镜像) 意思是:使用 npm 安装全局性的( -g ) gulp 包。 如果你安装失败,请输入 sudo npm install -g gulp0 码力 | 36 页 | 275.87 KB | 1 年前3
《玩转webpack》第八章 实战篇: React 全家桶 和 webpack 开发商城项巨w 谈谈 Web 商城的性能优化策略略 · 渲染优化 ·个⼈人中⼼心⻚页预渲染 · ⾸首⻚页、列列表⻚页、详情⻚页采⽤用 SSR 或者 Native 渲染 · 弱⽹网优化 · 使⽤用离线包、PWA 等离线缓存技术 · Webview 优化 · 打开 Webview 的同时并⾏行行的加载⻚页⾯面数据 功能开发要点 · 浏览器器端: · 服务端: · MVC 开发⽅方式,数据库基于0 码力 | 25 页 | 5.67 MB | 1 年前3
Rspack 基于 Rust 的高性能Web 构建工具效率 Rspack 解决了什么问题? ??? 灵活丰富的配置 不止覆盖 Web 开发场景,能够应对各种场景 Rspack 解决了什么问题? ??? 强大的生产环境优化 强大可自定义配置的拆包能力等决定了产物的性能 Rspack 解决了什么问题? ??? ♂️ 方便从原有方案(Webpack)迁移 用最小的成本优化巨型项目的开发体验 Rspack 解决了什么问题? ??? 社区现有方案往往能解决其中一两个问题,0 码力 | 29 页 | 4.51 MB | 1 年前3
《玩转webpack》加餐:webpack5专题开创性的特性:模块联邦 发明者:Zack Jackson 基本解释:使 ⼀个JavaScript 应⽤在运⾏过程中可以动态加载另⼀个应⽤的代码,并⽀持共享依赖(CDN)。不再需要 本地安装 npm 包。 • Remote:被依赖⽅,被 Host 消费的 webpack 构建 • Host:依赖⽅,消费其他 Remote 的 webpack 构建 一个应用可以是 Host,也可以是 Remote,也可以同时是0 码力 | 40 页 | 12.03 MB | 1 年前3
共 9 条
- 1













