下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 29 | Tree Shaking的使用和原理分析
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

玩转webpack

共84讲 · 84课时,约900分钟
5426
免费
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 为什么需要构建工具
04 | 前端构建演变之路
05 | 为什么选择webpack
06 | 初识webpack
免费
07 | 环境搭建:安装webpack
08 | webpack初体验:一个最简...
09 | 通过npm script运行webpa...
免费
10 | webpack核心概念之entry
免费
11 | webpack核心概念之output
12 | webpack核心概念之loaders
13 | webpack核心概念之plugins
14 | webpack核心概念之mode
15 | 解析ECMASCript 6和React...
16 | 解析CSS、Less和Sass
17 | 解析图片和字体
18 | webpack中的文件监听
19 | webpack中的热更新及原理...
20 | 文件指纹策略:chunkhash...
21 | HTML 、CSS和JavaScript...
22 | 自动清理构建目录产物
23 | PostCSS插件autoprefixer...
24 | 移动端CSS px自动转换成r...
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 | 构建异常和中断处理
38 | 构建配置包设计
39 | 功能模块设计和目录结构
40 | 使用ESLint规范构建脚本
41 | 冒烟测试介绍和实际运用
42 | 单元测试和测试覆盖率
43 | 持续集成和Travis CI
44 | 发布构建包到npm社区
45 | Git Commit规范和changel...
46 | 语义化版本(Semantic Ve...
47 | 初级分析:使用webpack内...
48 | 速度分析:使用speed-mea...
49 | 体积分析:使用webpack-b...
50 | 使用高版本的webpack和Nod...
51 | 多进程/多实例构建
52 | 多进程并行压缩代码
53 | 进一步分包:预编译资源模...
54 | 充分利用缓存提升二次构建...
55 | 缩小构建目标
56 | 使用Tree Shaking擦除无...
57 | 使用webpack进行图片压缩
58 | 使用动态Polyfill服务
59 | webpack启动过程分析
60 | webpack-cli源码阅读
61 | Tapable插件架构与Hooks设...
62 | Tapable是如何和webpack进...
63 | webpack流程篇:准备阶段
64 | webpack流程篇:模块构建...
65 | webpack流程篇:文件生成
66 | 动手编写一个简易的webpac...
67 | 动手编写一个简易的webpac...
68 | loader的链式调用与执行顺...
69 | 使用loader-runner高效进...
70 | 更复杂的loader的开发场
71 | 实战开发一个自动合成雪碧...
72 | 插件基本结构介绍
73 | 更复杂的插件开发场景
74 | 实战开发一个压缩构建资源...
75 | 商城技术栈选型和整体架构
76 | 商城界面UI设计与模块拆分
77 | React全家桶环境搭建
78 | 数据库实体和表结构设计
79 | 登录注册模块开发
80 | 商品模块开发
81 | 订单模块开发
82 | 谈谈web商城的性能优化策...
83 | 功能开发总结
84 | 结束语
本节摘要
展开

精选留言(16)

  • 2019-06-14
    老师说的副作用是什么呢

    作者回复: 副作用这个概念来源于函数式编程(FP),纯函数是没有副作用的,也不依赖外界环境或者改变外界环境。纯函数的概念是:接受相同的输入,任何情况下输出都是一样的。

    非纯函数存在副作用,副作用就是:相同的输入,输出不一定相同。或者这个函数会影响到外部变量、外部环境。

    函数如果调用了全局对象或者改变函数外部变量,则说明这个函数有副作用。

    13
  • 2019-08-26
    在构建代码的时候,我总觉得是视频卡了 【笑哭】
    1
    3
  • 2019-06-17
    大师,29讲都看完了,也照着敲了一遍代码,你讲得很清晰。你个人有其它讲座推出吗?例如:移动端hybrid或h5。哈哈,尽快上线30以后的哦

    作者回复: 好嘞

    1
  • 2019-10-09
    第一次提问希望老师解答下,老师我想问下我没有在.babelrc中设置modules = false,打包后也会treeshaking,这是为什么呢,
  • 2019-09-15
    .babelrc 里的配置如下,在webpack.config.js 里把mode设置成none。但是tree shaking没有起作用。

    ```
    {
        "presets": [
            ["@babel/preset-env", {
                "modules": false
            }]
        ]
    }
    ```
    展开
    1
  • 2019-09-15
    "在.babelrc里设置modules:false",这个要怎么设置?直接写在和"presets"同级上会报错
    2
  • 2019-08-19
    老师,有个疑问:既然tree-shaking的原理是依赖es6模块语法,分析模块依赖,那它应该只是可以实现无用模块的擦除,而if(false)这类达不到的写法,tree-shaking是通过什么做到的呢?
    查了一下,if(false)这类dead code,应该是uglify单独完成的,不需要tree-shaking,不确定是不是这样,希望老师解答一下~谢谢!
  • 2019-08-06
    老师我很好奇,感觉webpack也学了很久了,但是那些配置命令基本过段时间就忘记,想知道您现在写这些配置,都是靠记忆写出来的吗,好慌

    作者回复: 对于一些比较基本的配置需要手写出来。比如 webpack 配置的大体结构,loader 的匹配规则语法、传参这些。

    对于插件而言,它的用法会经常变化,因此需要对插件的用法有一个概念,常见的插件分别提供了哪些功能,不必硬背,实际需要使用插件时再去查阅文档即可。

  • 2019-07-26
    老师你好,我在html中引入:
    <script>
          ${require('raw-loader!babel-loader!../../node_modules/lib-flexible/flexible.js')}
        </script>

    vscode会提示: var $: JqueryStatic,请问这个怎么解决
    展开
  • 2019-07-09
    pdf中的要求:必须是 ES6 的语法,CJS 的方式不支持,这点很容易让人误解啊
    建议说清楚一点,必须是ES6的模板语法,commonJs不支持,吓我的以为所有es5都语法不支持。

    而且tree-shaking好像跟es6模板语法没什么关系,我没有使用import 导入模板,直接在index.js中,在vue 的生命函数中和页面的其他地方写了一些无用的函数,开启tree-shaking也将这些无用代码删除了,关闭tree-shaking后会打包这些无用的代码

    最后在 .babelrc 里设置 modules: false ,这句话有什么用,我设置之后 打包就报错
    展开
    2
  • 2019-06-18
    起点小说网毕业
  • 2019-06-18
    最近在写一个TS+react+antd+mobx的脚手架,看了课程以后有种恍然大悟的感觉,期待后边的课程

    作者回复: 嗯嗯,不会让你失望的哈,干货还是比较多的

  • 2019-06-17
    讲得很清晰,很期待后面的课程,哈哈,希望快快更新

    作者回复: 嗯嗯,新更新了一节

  • 2019-06-14
    我打包后的js文件是压缩的,为什么老师的不是呢

    作者回复: 因为为了演示 tree-shaking 的效果,我把 webpack.prod.js 里面的 mode 设置成了 none,这样就不会默认开启 tree-shaking 了,方便查看 tree shaking的开启与否的差别。

    将 mode 设置成 none 的时候,就不会自动使用 webpack 的 terser-webpack-plugin 插件了。

  • 2019-06-13
    老师能不能讲一下什么叫副作用

    作者回复: 副作用这个概念来源于函数式编程(FP),纯函数是没有副作用的,也不依赖外界环境或者改变外界环境。纯函数的概念是:接受相同的输入,任何情况下输出都是一样的。

    非纯函数存在副作用,副作用就是:相同的输入,输出不一定相同。或者这个函数会影响到外部变量、外部环境。

    函数如果调用了全局对象或者改变函数外部变量,则说明这个函数有副作用。

  • 2019-06-12
    react react-dom 值引用一次 ,minChunks: 2,也会打包进commons.js中。minChunks: 3时不会打包进去