Open Awen-hub opened 2 years ago
观察到这几个函数是babel把es6转译成es5时候注入的helper函数,一般web项目通过@babel/plugin-transform-runtime
这个插件去解决重复注入helper函数的问题。想问一下组件开发功能目前是否有不开启es6转es5配置项?微信小程序开发者工具目前自带有es6转es5功能,同时也内置了@babel/plugin-transform-runtime
插件,如果把转译任务交给微信开发者工具或许是一个好的解决方案。
组件代码
产物
运行build命令打包成微信小程序组件后得到产物
建议
就产物代码来看
_slicedToArray、_arrayWithHoles、、_iterableToArrayLimit、_unsupportedIterableToArray、_nonIterableRest
这几个函数都是无副作用的。同时发现每个使用了useState
钩子(暂时不了解其他hooks是否有类似情况)的组件打包时都会注入一样的逻辑,当组件数量较大时会有造成较多的体积浪费。建议将这几个函数抽离到一个npm依赖,在打包产物时候通过require("xxx")
的方式引入,优化产物的体积大小。