lodash这库还是为微信技术群里有人推荐的,我一开始都不知道,不过看了下,是对一些常用js方法的封装,比如深度克隆,筛选啊这些。

但是一个lodash的库引用,他占用了起码有500kg的大小,在vue cli 打包后,在chunk-vendors.js文件中也占据了一些大小。

这就会导致chunk-vendors这个文件变得特别的大,但是lodash里面的方法你可能只会用到一部分,并不是全部,所以我希望的是,他可以按需引入,并且不改变原来的写法的情况下。

教程

安装插件

shell
复制代码
yarn add lodash-webpack-plugin babel-plugin-lodash --dev

安装这两个插件。

然后去vue.config.js中配置

javascript
复制代码
//按需加载lodash const LodashModuleReplacementPlugin = require("lodash-webpack-plugin"); module.exports = { chainWebpack: config => { //按需加载lodash if (process.env.NODE_ENV === "production") { config.plugin("loadshReplace").use(new LodashModuleReplacementPlugin()); }; } }

这里表示我是在打包的环境下才会按需引入的

babel.config.js配置

javascript
复制代码
module.exports = { "plugins":["lodash"] }

然后保存,我们再进行打包,就会发现chunk-vendors.js会比原来小一些。

然后使用的时候和往常一样,在需要调用lodash方法的vue文件里面引入

javascript
复制代码
<script> import _ from "lodash"; export default { methods:{ test(){ _.find() } } } </script>

打包时会自动给你按需引入的,所以,写法上不需要考虑变动,特别是用的特别多的情况下。

当然也有另一个方法,不用插件的,但是我就不是很喜欢,因为写的多了就很烦了,记不住那么多。

有需要可以自行百度找找教程。

分类: vue 项目实战 标签: vuevue clilodashlodash 按需引入

评论

全部评论 4

  1. Jackie
    Jackie
    Google Chrome Windows 10
    import _ from "lodash" 这样引入的_ 是undefined的 去掉babel.config.js的"plugins":["lodash"]就可以 请问这样是什么问题呢?
    1. 木灵鱼儿
      木灵鱼儿
      FireFox Windows 10
      @Jackie按需引入后,你必须直接调用方法才不会是undefined,比如直接深度拷贝 _.copyDeep(),插件会自动转换,直接console输出_就会undefined
      1. Jackie
        Jackie
        Google Chrome Windows 10
        @木灵鱼儿确实是这样的 主要是我想import之后把它挂载到Vue.prototype.$lodash=_ 使用 看来不能这样子用 感谢回复
        1. 木灵鱼儿
          木灵鱼儿
          FireFox Windows 10
          @Jackiewebpack会自动转换,所以他会删除你import的完整引入

目录