1. 多了 资源模块 ```javascript webpack5 以前如果要解析 img、txt 文本,就需要引入 file-loader、url-loader、raw-loader, webpack5 引入了资源模块取代了这个 loader 比如 asset/source 替代了 raw-loader 导出资源的源代码 asset/resource 替代了 file-loader 向输出目录拷贝文件 asset/inline 替代了 url-loader

    { test: /.png/, type: ‘asset/resource’ // 向输出目录输出文件 }

    { test: /.txt/, type: ‘asset/source’ }

    1. 2. 模块 id chunk id 进行了优化
    2. > webpack5 以前,如果不是从 entry 入口打包的 chunk 文件,都会以 1 2 3 文件命名方式命名,如果删除某些文件,可能会导致缓存失效
    3. > webpack5 可以设置 id 名称,按照模块的名称生成,对缓存友好
    4. 3. 移除了 polyfill
    5. ```javascript
    6. /webpack5 以前,如果引入一些第三方模块,这些模块会自动启用 polyfill
    7. webpack5 需要手动引入
    8. resolve: {
    9. fallback: {
    10. 'crypto': requrie.resolve('crypto-browerify') || false
    11. }
    12. }
    1. 更强大的 tree-shaking ```javascript webpack4 的tree-shaking 比较简单,主要根据 import 引入的变量是否在当前模块出现过 import {one, two} from ‘./module’ log(one) // 因为 two 没有在这个模块出现,所以会被 tree-shaking

    webpack5 可以进行更复杂的 tree-shaking 比如入口引入一个模块中的一个方法,这个模块又引入了其它模块中的一个方法,那么这些模块中没有用到的 方法都会被tree-shaking ``` image.png