当前播放: 21 | HTML 、CSS和JavaScript代码压缩
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:webpack与构建发展简史 (9讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 为什么需要构建工具
免费
04 | 前端构建演变之路
05 | 为什么选择webpack
06 | 初识webpack
07 | 环境搭建:安装webpack
免费
08 | webpack初体验:一个最简单的例子
09 | 通过npm script运行webpack
第二章:webpack基础用法 (12讲)
10 | webpack核心概念之entry
免费
11 | webpack核心概念之output
免费
12 | webpack核心概念之loaders
13 | webpack核心概念之plugins
14 | webpack核心概念之mode
15 | 解析ECMASCript 6和React JSX
16 | 解析CSS、Less和Sass
17 | 解析图片和字体
18 | webpack中的文件监听
19 | webpack中的热更新及原理分析
20 | 文件指纹策略:chunkhash、contenthash和hash
21 | HTML 、CSS和JavaScript代码压缩
第三章:webpack进阶用法 (16讲)
22 | 自动清理构建目录产物
23 | PostCSS插件autoprefixer自动补齐CSS3前缀
24 | 移动端CSS px自动转换成rem
25 | 静态资源内联
26 | 多页面应用打包通用方案
27 | 使用sourcemap
28 | 提取页面公共资源
29 | Tree Shaking的使用和原理分析
30 | Scope Hoisting使用和原理分析
31 | 代码分割和动态import
32 | 在webpack中使用ESLint
33 | webpack打包组件和基础库
34 | webpack实现SSR打包(上)
35 | webpack实现SSR打包(下)
36 | 优化构建时命令行的显示日志
37 | 构建异常和中断处理
第四章:编写可维护的webpack构建配置 (9讲)
38 | 构建配置包设计
39 | 功能模块设计和目录结构
40 | 使用ESLint规范构建脚本
41 | 冒烟测试介绍和实际运用
42 | 单元测试和测试覆盖率
43 | 持续集成和Travis CI
44 | 发布构建包到npm社区
45 | Git Commit规范和changelog生成
46 | 语义化版本(Semantic Versioning)规范格式
第五章:webpack构建速度和体积优化策略 (12讲)
47 | 初级分析:使用webpack内置的stats
48 | 速度分析:使用speed-measure-webpack-plugin
49 | 体积分析:使用webpack-bundle-analyzer
50 | 使用高版本的webpack和Node.js
51 | 多进程/多实例构建
52 | 多进程并行压缩代码
53 | 进一步分包:预编译资源模块
54 | 充分利用缓存提升二次构建速度
55 | 缩小构建目标
56 | 使用Tree Shaking擦除无用的JavaScript和CSS
57 | 使用webpack进行图片压缩
58 | 使用动态Polyfill服务
第六章:通过源代码掌握webpack打包原理 (9讲)
59 | webpack启动过程分析
60 | webpack-cli源码阅读
61 | Tapable插件架构与Hooks设计
62 | Tapable是如何和webpack进行关联起来的?
63 | webpack流程篇:准备阶段
64 | webpack流程篇:模块构建和chunk生成阶段
65 | webpack流程篇:文件生成
66 | 动手编写一个简易的webpack(上)
67 | 动手编写一个简易的webpack(下)
第七章:编写loader和插件 (7讲)
68 | loader的链式调用与执行顺序
69 | 使用loader-runner高效进行loader的调试
70 | 更复杂的loader的开发场
71 | 实战开发一个自动合成雪碧图的loader
72 | 插件基本结构介绍
73 | 更复杂的插件开发场景
74 | 实战开发一个压缩构建资源为zip包的插件
第八章:React全家桶和webpack开发商城项目 (10讲)
75 | 商城技术栈选型和整体架构
76 | 商城界面UI设计与模块拆分
77 | React全家桶环境搭建
78 | 数据库实体和表结构设计
79 | 登录注册模块开发
80 | 商品模块开发
81 | 订单模块开发
82 | 谈谈Web商城的性能优化策略
83 | 功能开发总结
84 | 玩转webpack & 结课测试
21 | HTML 、CSS和JavaScript代码压缩

21 | HTML 、CSS和JavaScript代码压缩

程柳锋
腾讯高级工程师,IVWEB团队社区和工程化负责人
全集7519
新人首单 ¥19.9 原价 ¥99
11
本节摘要
登录 后留言

精选留言(40)

  • Storm
    webpack只能全量更新?
    比如我某个js,没变过,但是打包的时候,这个文件还是被重新生成到dist目录了,这样部署到服务器的时候,本来只需要增量更新文件,这样一来,就变成全量更新了。非常浪费时间

    作者回复: 准确的说这个增量更新还是全量更新并不是 webpack 去做的,而是部署脚本或者部署服务器去关注的,webpack 只负责构建。

    通常的做法是: webpack 打包的时候会给每个文件生成文件指纹(这个通常可以理解成静态资源的版本)。然后部署脚本进行部署操作,比如: scp、rsync 等操作把资源发布到 生产机器或者 cdn 的时候。发布上去后,部署系统会将当前的静态资源的列表存起来,下次再次进行部署会将新的资源列表和前一次的资源列表进行比对。如果文件指纹没有变化,则不会进行覆盖操作,从而达到增量部署。

    2019-05-31
    13
  • 陈小渣👻
    想问下老师,为什么已经默认有了JS压缩和使用了OptimizeCssAssetsPlugin 压缩 CSS。

    但在 HtmlWebpackPlugin 中的 minify 中还要加入 minifyCSS 和 minifyJS,会不会过于繁琐呢?希望老师解答,谢谢!

    作者回复: HtmlWebpackPlugin 里面的minify 的 minifyCSS 参数和minifyJS参数是用于去压缩一开始就内联在 html 里面的css和js,不是打包生成的 css 和 js

    2019-06-10
    9
  • 陈森
    老师一直疑惑chunk是啥

    作者回复: 有三个比较容易混淆的概念,bundle,chunk和module。

    bundle:打包最终生成的文件
    chunk:每个chunk是由多个module组成,可以通过代码分割成多个chunk。
    module:webpack中的模块(js、css、图片等等)

    2019-06-05
    4
  • 浩明啦
    老师 我好像在腾讯课堂见过你 哈哈

    作者回复: 😄 之前在腾讯课堂做过直播

    2019-05-31
    4
  • Zkerhcy
    HtmlWebpackPlugin中参数chunks的值数组对应的是entry中的键吧,视频里这个没说太明白,
    总体课讲的比较通俗易懂。

    作者回复: 是的,你希望哪个 chunk 自动注入到哪个 html-webpack-plugin 就可以直接把相应的chunk写入到这个 chunks 的数组里就好了。

    在26节多页面通用打包会更详细的介绍到 html-webpack-plugin 的用法

    2019-06-05
    3
  • 陈程城
    讲道理不需要安装cssnano,optimize-css-assets-webpack-plugin插件是有向dependencies中引入cssnano的,可能是因为cssnano是属于默认配置吧
    2019-12-08
    2
  • Treasure
    按照您的步骤一步一步来的
    没有报错消息
    结果dist目录下也生成了对应的html 并且inject没有问题 但是代码未曾压缩
    很困惑 求解啊 老师~
    2019-07-17
    4
    2
  • 天青
    视频质量很高,物超所值。老师加油。

    作者回复: 感谢夸奖~

    2019-05-31
    2
  • (●—●)™Chenley...
    加油,更新…

    作者回复: 嗯嗯,在努力更新中了

    2019-05-31
    1
  • the blue
    uglifyjs 压缩 es6 的东西有问题,而且压缩的文件很大的时候会出现oom问题
    2020-08-04
  • Eagle Clark
    我的HTML文件只有一个叫index.html,打包出来的文件里面没有被注入js,但是我把index改成main之后就成功了,感觉很奇怪
    2020-05-31
  • tron
    请问使用hash输出文件时,htmlWebpackPlugin的chunks应该怎么写呢,不写是正常引用的
    2020-05-26
  • 黑色摩天轮
    没有引入OptimizeCSSAssetsPlugin插件,但是mode设置为production,css也可以压缩,反而引入了OptimizeCSSAssetsPlugin插件,js压缩没有了,请问老师这是什么情况~
    2020-05-14
  • 老兵
    一个疑惑:
    使用了HtmlWebpackPlugin后,将
    <script src="./search.js" type="text/javascript"></script>
    这段代码从search.html中删除了,但是运行 npm run build 后,压缩出来的js中还是有 <script src="search_3eff3478.js"></script> 这样的标签

    请问这是为什么?HtmlWebpackPlugin 怎么做到的?
    2020-04-19
  • zf
    optimize-css-assets-webpack-plugin 这个插件默认依赖 cssnano,不需要在手动安装了
    2020-02-27
  • 凡木
    老师,此章节遇到的问题是使用了production生产换环境,js代码未压缩,去安装uglifyjs-webpack-plugin,按照npm给的示例使用依旧未压缩!什么原因导致的呢?
    2020-02-25
  • Ricardo·M·Liang
    css-loader 不是自带css压缩吗
    2019-11-14
  • feidiy
    preserveLineBreaks这个什么意思呢,没在文档找到相关解释
    2019-10-21
    1
  • 安静
    老师,按官网上的说明配置了mini-css-extract-plugin的热更新,但是只有第一次修改的时候内容自动更新了,后面再修改就是自动编译但页面内容没更新,reloadAll已设置成true了,这个是什么原因呢?求解
    2019-10-21
    2
  • sunbeam
    node_modules\webpack-cli\bin\cli.js:356
                                                                    if (!e && fileOwnerId === process.getuid()) utimesSync(openCollectivePath, now, now);
                                                                                                      ^

    TypeError: process.getuid is not a function
        at e (D:\demo\webpack4.0-project\node_modules\webpack-cli\bin\cli.js:356:43)
        at FSReqWrap.args [as oncomplete] (fs.js:140:20)


    这报错啥意思呢
    2019-10-21
收起评论
看过的人还看
重学前端

程劭非(winter)  前手机淘宝前端负责人

58讲 | 37197 人已学习

新人首单 ¥19.9 原价 ¥99
TypeScript开发实战

梁宵  搜狗营销事业部高级架构师

47讲 | 4492 人已学习

新人首单 ¥29.9 原价 ¥129
Node.js开发实战

杨浩  腾讯高级工程师

57讲 | 6170 人已学习

新人首单 ¥29.9 原价 ¥129
浏览器工作原理与实践

李兵  前盛大创新院高级研究员

46讲 | 9284 人已学习

新人首单 ¥19.9 原价 ¥99