mallfoundry/taroify

[Bug Report] 使用组件后,会全量引入 lodash

Closed this issue · 9 comments

cryg commented

问题出在哪个包

@taroify/core

问题出在哪个平台/设备/浏览器

微信小程序

平台/设备/浏览器

No response

你正在使用的 Taroify 版本是多少

^0.3.2-alpha.0

描述一下您遇到的问题以及重现步骤

按需引入组件后,打包后文件会全量引入lodash,看了源码,里面所有用到 lodash的 都是 import * as _ from "lodash"; 这个引入的,建议开发者,按需引入 lodash
efbe5dc979eaff5bc8f3f27428e5e746

如果可能的话,请包含一个代码框的链接与复制的问题

No response

你知道如何解决这个问题吗

Yes

您是否愿意参与修复这个问题,并创建一个 PR

None

修复这个问题的解决方案

No response

最近我也在考虑这个问题,有些方法已经过时了,没必要再引入 lodash 里面的方法了

cryg commented

最近我也在考虑这个问题,有些方法已经过时了,没必要再引入 lodash 里面的方法了

请问近期会修复这个问题吗

最近我也在考虑这个问题,有些方法已经过时了,没必要再引入 lodash 里面的方法了

请问近期会修复这个问题吗

正在进行

在config添加下面配置,使用 lodash-es 替换 lodash

  mini: {
    webpackChain (chain) {
      chain.plugin('tree-shaking-lodash').use(Webpack.NormalModuleReplacementPlugin, [/^lodash$/, 'lodash-es'])
    },
  },
  h5: {
    webpackChain (chain) {
      chain.plugin('analyzer')
        .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [])
    }
  }

之前打包时用 babel-plugin-lodash 处理,后面我改打包时,把babel转换删了,没注意到还有lodash这个处理,导致了lodash全量导入问题。

建议保持现状,不做修改,如有需要,使用上面配置 @Pilotager

请问这个有进展了不?lodash 占用实在太大了,包体积直接超过2M了

在config添加下面配置,使用 lodash-es 替换 lodash

  mini: {
    webpackChain (chain) {
      chain.plugin('tree-shaking-lodash').use(Webpack.NormalModuleReplacementPlugin, [/^lodash$/, 'lodash-es'])
    },
  },
  h5: {
    webpackChain (chain) {
      chain.plugin('analyzer')
        .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin, [])
    }
  }

@javaxiu 先用这个处理下

webpackChain(chain) {
chain.resolve.alias.set("lodash", "lodash-es");
}
这样就可以了,lodash-es本身是支持tree shaking的