您可以安装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
Source: Lodash 文档
导入后,您可以使用isEqual
您的代码中的函数。请注意,它不是名为的对象的一部分_
如果你以这种方式导入它,那么你don't参考它_.isEqual
,但直接与isEqual
.
替代方案:使用lodash-es
正如所指出的@kimamula:
使用 webpack 4 和洛达什-ES4.17.7 及更高版本,此代码有效。
import { isEqual } from 'lodash-es';
这是因为 webpack 4 支持副作用旗帜和lodash-es
4.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)