小编典典

如何导入单个 Lodash 函数?

all

使用
webpack,我正在尝试导入isEqual,因为lodash似乎正在导入所有内容。我尝试执行以下操作但没有成功:

import { isEqual } from 'lodash'

import isEqual from 'lodash/lang'

import isEqual from 'lodash/lang/isEqual'

import { isEqual } from 'lodash/lang'

import { isEqual } from 'lodash/lang'

阅读 101

收藏
2022-07-29

共1个答案

小编典典

您可以安装lodash.isequal为单个模块,而无需安装整个 lodash 包,如下所示:

npm install --save lodash.isequal

当使用 ECMAScript 5 和 CommonJS 模块时,你可以像这样导入它:

var isEqual = require('lodash.isequal');

使用 ES6 模块,这将是:

import isEqual from 'lodash.isequal';

您可以在代码中使用它:

const obj1 = {username: 'peter'};
const obj2 = {username: 'peter'};
const obj3 = {username: 'gregory'};

isEqual(obj1, obj2) // returns true
isEqual(obj1, obj3) // returns false

资料来源:Lodash 文档

导入后,您可以isEqual在代码中使用该函数。请注意,_如果您以这种方式导入它,它不是命名对象的一部分,因此您 使用
引用它_.isEqual,而是直接使用isEqual

替代方案:使用lodash-es

正如所指出的:

对于 webpack 4 和lodash-es 4.17.7
及更高版本,此代码有效。

import { isEqual } from 'lodash-es';

这是因为 webpack 4 支持sideEffects标志,而lodash-es4.17.7
及更高版本包含该标志(设置为false)。

为什么不使用带有斜线的版本? 此问题的其他答案建议您也可以使用破折号而不是点,如下所示:

import isEqual from 'lodash/isequal';

这也有效,但有两个小缺点:

  • 您必须安装整个 lodash 包 ( npm install --save lodash),而不仅仅是单独的小 lodash.isequal 包;存储空间便宜,CPU 速度快,所以你可能不关心这个
  • 使用 webpack 之类的工具时,生成的包会稍大一些;我发现带有最小代码示例的包大小isEqual平均要大 28%(尝试了 webpack 2 和 webpack 3,有或没有 Babel,有或没有 Uglify)
2022-07-29