 《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理//生成 webpack loader 代码 "generate-plugin", //生成 webpack plugin 代码 "info” //返回与本地环境相关的一些信息 ]; webpack-cli 提供的不需要编译的命令 命令行工具包 yargs 介绍 提供命令和分组参数 动态生成 help 帮助信息 webpack-cli 使用 args 分析 参数分组 (config/config-args.js),将命令划分为9类: ·Config options: 配置相关参数(文件名称、运行环境等) 通用参数(帮助命令、版本信息等) webpack-cli 执行的结果 最终会根据配置参数实例化 webpack 对象,然后执行构建流程 webpack-cli对配置文件和命令行参数进行转换最终生成配置选项参数 options Webpack 的本质 Webpack可以将其理解是一种基于事件流的编程范例,一系列的插件运行。 先看一段代码 class Compiler extends Tapable0 码力 | 39 页 | 3.66 MB | 1 年前3 《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理//生成 webpack loader 代码 "generate-plugin", //生成 webpack plugin 代码 "info” //返回与本地环境相关的一些信息 ]; webpack-cli 提供的不需要编译的命令 命令行工具包 yargs 介绍 提供命令和分组参数 动态生成 help 帮助信息 webpack-cli 使用 args 分析 参数分组 (config/config-args.js),将命令划分为9类: ·Config options: 配置相关参数(文件名称、运行环境等) 通用参数(帮助命令、版本信息等) webpack-cli 执行的结果 最终会根据配置参数实例化 webpack 对象,然后执行构建流程 webpack-cli对配置文件和命令行参数进行转换最终生成配置选项参数 options Webpack 的本质 Webpack可以将其理解是一种基于事件流的编程范例,一系列的插件运行。 先看一段代码 class Compiler extends Tapable0 码力 | 39 页 | 3.66 MB | 1 年前3
 《玩转webpack》第七章 原理篇: 编写 Loader 和插件(Async) ·html-webpack-plugin-after-emit (Async) 编写一个压缩构建资源为zip包的插件 要求: ·生成的 zip 包文件名称可以通过插件传入 ·需要使用 compiler 对象上的特地 hooks 进行资源的生成 准备知识:Node.js 里面将文件压缩为 zip 包 使用 jszip (https://www.npmjs.com/package/jszip) saveAs(content, "example.zip"); }); jszip 使用示例 复习:Compiler 上负责文件生成的 hooks Hooks 是 emit,是一个异步的 hook (AsyncSeriesHook) emit 生成文件阶段,读取的是 compilation.assets 对象的值 ·可以将 zip 资源包设置到 compilation.assets0 码力 | 29 页 | 4.37 MB | 1 年前3 《玩转webpack》第七章 原理篇: 编写 Loader 和插件(Async) ·html-webpack-plugin-after-emit (Async) 编写一个压缩构建资源为zip包的插件 要求: ·生成的 zip 包文件名称可以通过插件传入 ·需要使用 compiler 对象上的特地 hooks 进行资源的生成 准备知识:Node.js 里面将文件压缩为 zip 包 使用 jszip (https://www.npmjs.com/package/jszip) saveAs(content, "example.zip"); }); jszip 使用示例 复习:Compiler 上负责文件生成的 hooks Hooks 是 emit,是一个异步的 hook (AsyncSeriesHook) emit 生成文件阶段,读取的是 compilation.assets 对象的值 ·可以将 zip 资源包设置到 compilation.assets0 码力 | 29 页 | 4.37 MB | 1 年前3
 《玩转webpack》 第四章 进阶篇: 编写可维护的 webpack 构建配置minor 升级大版本号:npm version major 发布版本:npm publish Git 规范和 Changelog 生成 ·加快 Code Review 的流程 良好的 Git commit 规范优势: ·根据 Git Commit 的元数据生成 Changelog ·后续维护者可以知道 Feature 被修改的原因 技术方案 提交格式要求 本地开发阶段增加 precommit ": "^2.11.1", "conventional-changelog-cli": "^1.2.0", "husky": "^0.13.1" } Changelog 生成 开源项目版本信息案例 React 版本信息 版本是严格递增的,此处是:16.2.0 - > 16.3.0 -> 16.3.1 软件的版本通常由三位组成,形如: X.Y.Z 在发布重要版本时,可以发布alpha0 码力 | 30 页 | 5.38 MB | 1 年前3 《玩转webpack》 第四章 进阶篇: 编写可维护的 webpack 构建配置minor 升级大版本号:npm version major 发布版本:npm publish Git 规范和 Changelog 生成 ·加快 Code Review 的流程 良好的 Git commit 规范优势: ·根据 Git Commit 的元数据生成 Changelog ·后续维护者可以知道 Feature 被修改的原因 技术方案 提交格式要求 本地开发阶段增加 precommit ": "^2.11.1", "conventional-changelog-cli": "^1.2.0", "husky": "^0.13.1" } Changelog 生成 开源项目版本信息案例 React 版本信息 版本是严格递增的,此处是:16.2.0 - > 16.3.0 -> 16.3.1 软件的版本通常由三位组成,形如: X.Y.Z 在发布重要版本时,可以发布alpha0 码力 | 30 页 | 5.38 MB | 1 年前3
 《玩转webpack》 第二章 基础篇: webpack 基础用法js: 构建输出的⽂文件 什什么是⽂文件指纹? 打包后输出的⽂文件名的后缀 ⽂文件指纹如何⽣生成 Hash:和整个项⽬目的构建相关,只要项⽬目⽂文件有修改,整个项⽬目构建的 hash 值就会更更改 Chunkhash:和 webpack 打包的 chunk 有关,不不同的 entry 会⽣生成不不同的 chunkhash 值 Contenthash:根据⽂文件内容来定义 hash ,⽂文件内容不不变,则0 码力 | 41 页 | 2.52 MB | 1 年前3 《玩转webpack》 第二章 基础篇: webpack 基础用法js: 构建输出的⽂文件 什什么是⽂文件指纹? 打包后输出的⽂文件名的后缀 ⽂文件指纹如何⽣生成 Hash:和整个项⽬目的构建相关,只要项⽬目⽂文件有修改,整个项⽬目构建的 hash 值就会更更改 Chunkhash:和 webpack 打包的 chunk 有关,不不同的 entry 会⽣生成不不同的 chunkhash 值 Contenthash:根据⽂文件内容来定义 hash ,⽂文件内容不不变,则0 码力 | 41 页 | 2.52 MB | 1 年前3
 Gulp 入门指南description: entry point: (index.js) test command: ... ... Is this ok? (yes) 最终会在当前目录中创建 package.json 文件并生成类似如下代码: gulp 入门指南 - 21 - 本文档使用 看云 构建 { "name": "gulp-demo", "version": "0.0.0", "description": sourcemaps.write('./'), gulp.dest(paths.distDir) ]) // ... watchjs-2 完整代码 此时 dist/js/ 中也会生成对应的 .map 文件,以便使用 Chrome 控制台调试代码 在线文件示例: src/js/ 至此,我们完成了检测文件修改后压缩 JS 的 gulp 任务配置。 有时我们也需要一次编译所有0 码力 | 36 页 | 275.87 KB | 1 年前3 Gulp 入门指南description: entry point: (index.js) test command: ... ... Is this ok? (yes) 最终会在当前目录中创建 package.json 文件并生成类似如下代码: gulp 入门指南 - 21 - 本文档使用 看云 构建 { "name": "gulp-demo", "version": "0.0.0", "description": sourcemaps.write('./'), gulp.dest(paths.distDir) ]) // ... watchjs-2 完整代码 此时 dist/js/ 中也会生成对应的 .map 文件,以便使用 Chrome 控制台调试代码 在线文件示例: src/js/ 至此,我们完成了检测文件修改后压缩 JS 的 gulp 任务配置。 有时我们也需要一次编译所有0 码力 | 36 页 | 275.87 KB | 1 年前3
 《玩转webpack》 第三章 基础篇 Webpack 进阶用法map 关键字 source map: 产⽣生.map⽂文件 eval: 使⽤用eval包裹模块代码 cheap: 不不包含列列信息 inline: 将.map作为DataURI嵌⼊入,不不单独⽣生成.map⽂文件 module:包含loader的sourcemap source map 类型 基础库分离 ·思路路:将 react、react-dom 基础 包通过 cdn 引⼊入,不不打⼊入0 码力 | 69 页 | 4.33 MB | 1 年前3 《玩转webpack》 第三章 基础篇 Webpack 进阶用法map 关键字 source map: 产⽣生.map⽂文件 eval: 使⽤用eval包裹模块代码 cheap: 不不包含列列信息 inline: 将.map作为DataURI嵌⼊入,不不单独⽣生成.map⽂文件 module:包含loader的sourcemap source map 类型 基础库分离 ·思路路:将 react、react-dom 基础 包通过 cdn 引⼊入,不不打⼊入0 码力 | 69 页 | 4.33 MB | 1 年前3
共 6 条
- 1













