sql >> Databáze >  >> NoSQL >> MongoDB

Modul nenalezen:Chyba:Nelze vyřešit modul 'modul' mongodb při sbalení s webpackem

Když Webpack sbalí vaše moduly, řídí se řetězcem závislostí modulu, který jste importovali (nebo požadovali) a stáhne všechny jeho závislosti a také je sbalí až na konec řetězce.

Pokud existuje soubor, který v tomto řetězci závislostí neví, jak načíst, bude vyvolán tento typ chyby.

To lze někdy vyřešit přidáním zavaděče, který ví, jak načíst tento typ závislosti. Pokud je však závislost nenativním modulem, Webpack jej nemůže načíst. Některé zavaděče vědí, jak načíst moduly s nenativními závislostmi tak, že vyřadí a vyloučí nenativní část, aby se načetla. V fs například nepotřebujete umět číst a zapisovat soubory z disku, protože to prohlížeč neumí, takže není třeba tuto část zahrnout.

To vyvolává otázku:Jakou funkcionalitu z modulu mongoose v prohlížeči potřebujete? Můžete zahrnout pouze tuto funkci a ne celý modul mongoose?

Pokud to dokážete, možná budete schopni vyřešit 2 problémy:

  1. Problém s balíčkováním Webpack můžete vyřešit, protože část mangusty, kterou zahrnete do svého projektu, nemá problematické dílčí závislosti.
  2. S Webpackem vytvoříte menší balíček, protože zahrnete pouze ty části, které potřebujete, takže užitečné zatížení bundle.js pro klienta bude mnohem menší.

Jako příklad jsem nedávno potřeboval použít generátor Mongodb ObjectId v klientovi. Zjistil jsem, že Webpack si nedokázal poradit s import mongodb from 'mongodb' komponenta, takže při kopání do závislostí jsem zjistil, že mongodb závisí na mongodb-core což závisí na bson který má ObjectId metoda, kterou jsem potřeboval.

Importováním pouze bson součást tohoto řetězce závislostí Obešel jsem problém s webovým balíkem a svůj balíček jsem mnohem zmenšil.

Pokud používáte Npm 3, pak je velká šance, že bson je nainstalován v kořenovém adresáři node_modules pokud již používáte mongoose nebo mongodb, můžete import to, aniž byste na něj vložili explicitní odkaz ve vašem package.json . To samozřejmě nese riziko, že pokud na ní přestane horní závislost záviset, vaše sestavení se zlomí a budete muset npm install to nezávisle. Výhodou použití tohoto přístupu je, že budete vždy používat stejnou verzi bson že používá horní závislost, což může být důležité.




  1. Tipy pro spuštění MongoDB v produkci pomocí změnových streamů

  2. Jak vytvořit webovou stránku s vyhledávacím panelem pro dotaz na mongo databázi?

  3. Klonovat databázi v Mongodb mezi hostiteli pomocí ovladače uzlu

  4. Složené dotazy s Redis