我们最常见的方式是引入整个对象或者引入特定的函数:

// 方式1:引入整个lodash对象
import _ from "lodash";

// 方式2:按名称引入特定的函数
import { cloneDeep } from "lodash";

这两种方式都会引入整个 lodash 库。Lodash 含有许多函数,项目里一般只会用到其中的小部分,为了避免引入不必要的代码,lodash 提供了多种支持按需加载的方式。

配合插件:lodash-webpack-plugin
npm i lodash-webpack-plugin babel-plugin-lodash

.babel.config.js

 module.exports = {
    plugins: ["lodash"],
  };

vue.config.js

const LodashModuleReplacementPlugin = require("lodash-webpack-plugin");
module.exports = {
    chainWebpack: (config) => {
      config.plugin("loadshReplace").use(new LodashModuleReplacementPlugin());
    },
  };

- A.使用打包插件:
插件 babel-plugin-lodash 和 lodash-webpack-plugin 能够在打包时去掉不必要的 lodash 代码,减小产物体积。

-B. 指用具体的功能模块

// 只引入 array 模块的功能
import array from "lodash/array";

// 只引入 cloneDeep 函数
import cloneDeep from "lodash/cloneDeep";

这种方式只会引入引用路径对应的模块,无需使用插件,也不会有冗余代码。缺点是每个 import 语句只能引入一个函数,可能导致多个 import 语句。

- C)使用单独的函数库

Lodash 为每个方法提供了单独的 npm 包,你可以只下载你想要的函数。

let _trim= require('lodash.trim') 
//  or
import trim from 'lodash.trim' 
// 使用
trim(' 123123 ')

缺点:

不推荐在项目中使用这种方式。首先,它并不像看起来一样轻量,lodash 中的公共代码会存在于每一个函数包中。其次,每个方法都是独立的依赖包,意味着多次安装多个 package.json 依赖项、多个 node_modules 包目录。会造成代码冗余。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐