次のようにlodashパッケージlodash.isequal
全体をインストールせずに、単一のモジュールとしてインストールできます。
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
@kimamulaが指摘したように:
webpack 4およびlodash-es 4.17.7以降では、このコードは機能します。
import { isEqual } from 'lodash-es';
これは、webpack 4がsideEffectsフラグをサポートし、4.17.7以降にフラグがlodash-es
含まれているためです(これはに設定されていますfalse
)。
スラッシュでバージョンを使用しないのはなぜですか?
この質問に対する他の回答は、次のように、ドットの代わりにダッシュを使用することもできます:
import isEqual from 'lodash/isequal';
これも機能しますが、2つの小さな欠点があります。
- 小さな個別のlodash.isequalパッケージだけでなく、lodashパッケージ全体(
npm install --save lodash
)をインストールする必要があります。ストレージスペースが安価で、CPUが高速であるため、これについて気にする必要はありません。
- webpackなどのツールを使用した場合の結果のバンドルは少し大きくなります。最小限のコード例のバンドルサイズ
isEqual
が平均28%大きいことがわかりました(webl 2とwebpack 3を試してみました(Babelありまたはなし、Uglifyありまたはなし)。