antdv 1.x 按需引入之icons 优化

718 阅读1分钟

最近在开发远程组件时,发现antdv 按需引入只使用了其一个组件,但是打包出来之后通过 webpack-bundle-analyzer 分析发现@ant-design/icons占用很大的空间,如下:

image.png

查看源码之后,我们可以看到 antdv icon组件中是引入全部 icons 不是按需引入,这里造成了很多不必要的空间浪费

image.png

优化步骤:

  1. 我们可以通过在项目中安装对应版本的 @ant-design/icons,从全量改完按需引入首先得把它的依赖装上,至于装的什么版本,可以从node_modulesant-design-vuepackage.json查看当前依赖的版本。我这里用的是1.7.8的版本,对应的icons版本是2.1.1

  2. 新建一个按需引入icon 的 antdIcon.js。

比如我就按需引入了antdv 的 Modal 组件,这里只使用到 close 图标:

    // 按需引入 antd 图标
    // close 图标
    export { default as CloseOutline } from '@ant-design/icons/lib/outline/CloseOutline'
  1. vue.config.js配置

    找到configureWebpack配置,并添加resolve.alias配置,如下:

        configureWebpack: {
           resolve: {
             alias: { '@ant-design/icons/lib/dist$': path.resolve(__dirname, '这里为antdIcon.js路径') }
           }
         }
    

最后:

这样在打包出来之后,我们的包体积就小很多了!