[解決済み] Lodashの関数を1つだけインポートするには?
2022-04-21 15:22:06
質問
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'
解決方法は?
をインストールすることができます。
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
インポートした後は
isEqual
関数をコードに組み込むことができます。という名前のオブジェクトの一部でないことに注意してください。
_
この方法でインポートした場合
はしない。
で参照します。
_.isEqual
でなく、直接
isEqual
.
代替案 使用方法
lodash-es
のご指摘の通りです。 キマムラ :
webpack4と ロダッシュエス 4.17.7以降では、このコードは動作します。
import { isEqual } from 'lodash-es';
これは、webpack 4 が
sideEffects
フラグと
lodash-es
4.17.7 以降では、フラグ(このフラグは
false
).
なぜスラッシュ付きのバージョンを使用しないのか? この質問に対する他の回答では、このようにドットの代わりにダッシュを使うこともできるようです。
import isEqual from 'lodash/isequal';
これもうまくいくのですが、2つほど小さな欠点があります。
-
をすべてインストールする必要があります。
ロダッシュ
パッケージ (
npm install --save lodash
) だけでなく、小さな独立した lodash.isequal ストレージスペースは安く、CPUは速いので、これは気にしないかもしれません。 -
webpackなどのツールを使用した場合のバンドルは、若干大きくなります。
isEqual
は平均して 28% 大きくなります (webpack 2 と webpack 3、Babel の有無、Uglify の有無を試しました)。
関連
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vueの要素ツリーコントロールに破線を追加する説明
-
jQueryのコピーオブジェクトの説明
-
JavaScriptのクロージャの説明
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vueディレクティブv-bindの使用と注意点
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
JavaScriptのgetElementById、getElementsByTagNam、getElementsByClassNameの違いと使い方
-
[解決済み】lodashの正しいインポート方法