当前位置: 首页 > Web前端 > vue.js

vuecli4按需加载(包)lodash

时间:2023-03-31 15:52:55 vue.js

主要是为了记录下我的项目心得,方便后续查看。同时也是一种分享,帮助有需要的人。我的项目是vuecli4生成的项目,没有同时使用ts。方法一(全路径引用):在我需要使用lodash的a.vue文件中importcloneDeepfrom'lodash/cloneDeep'然后就可以直接使用cloneDeep了(xx);方法二(使用插件优化):在我需要使用lodash的a.vue文件中import_from"lodash";那么你可以直接使用_.cloneDeep(xx);切换到您的cmd。npminstalllodash-webpack-plugin-Snpminstallbabel-plugin-lodash-S然后进行配置1.配置vue.config.js为了方便大家,我贴出了核心部分。constLodashModuleReplacementPlugin=require("lodash-webpack-plugin");...chainWebpack:(config)=>{if(process.env.NODE\_ENV==="production"){config.plugin("loadshReplace").use(newLodashModuleReplacementPlugin());}},2.配置babel.config.js这个配置很简单,我就不贴代码了。总结:方法一和方法二各有优缺点。方法一的优点是不需要各种配置。缺点是它使用任何导入。可能是业务逻辑写的很好,突然需要切换到文件头导入一个没有导入的。功能,略显不爽。方法2正好相反。这取决于每个人的爱好。不过这两种方式都可以保证npmrunbuild的lodash是按需打包的。小了很多注意:如果你的项目配置了全局的lodash引用,我不能保证上面的方法是否可行。newwebpack.ProvidePlugin({_:"lodash",}),使用lodash-es(我还没来得及尝试这种方式)tree-shaking是rollup的杀手级特性,可以使用ES6的静态导入规范来reduce包的大小避免了不必要的代码引入,webpack2也很快引入了这个特性。使用tree-shaking需要保证引用的模块都是ES6规范。lodash-es是ES6的模块化版本,只需要直接导入即可。从'lodash-es'导入{isEmpty,isObject,cloneDeep};