MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Модулът не е намерен:Грешка:Не може да се разреши модул „module“ mongodb при групиране с webpack

Когато Webpack обединява вашите модули, той следва веригата на зависимостите на модула, който сте импортирали (или сте изисквали), и извлича всички негови зависимости, а също така ги обединява до края на веригата.

Ако има файл, който не знае как да зареди в тази верига на зависимости, тогава ще бъде изведен този тип грешка.

Това понякога може да бъде решено чрез добавяне на товарач, който знае как да зарежда този тип зависимости. Ако обаче зависимостта е нероден модул, тогава Webpack не може да го зареди. Някои от програмите за зареждане знаят как да зареждат модули с чужди зависимости, като премахват и изключват чуждата част, така че да се зареди. В fs модул, например, не е нужно да можете да четете и записвате файлове от диск, защото браузърът не може да прави това, така че няма нужда да включвате тази част.

Това повдига въпроса:Каква функционалност от модула mongoose ви трябва в браузъра? Можете ли да включите само тази функционалност, а не целия модул mongoose?

Ако можете да направите това, тогава може да успеете да разрешите 2 проблема:

  1. Може да разрешите проблема с групирането на Webpack, защото частта от mongoose, която включвате в проекта си, няма проблемни подзависимости.
  2. Ще създадете по-малък пакет с Webpack, защото ще включите само частите, от които се нуждаете, така че полезният товар на bundle.js за клиента ще бъде много по-малък.

Като пример, наскоро трябваше да използвам генератора на mongodb ObjectId в клиента. Открих, че Webpack не успя да се справи с import mongodb from 'mongodb' компонент, така че ровейки се в зависимостите, открих, че mongodb зависи от mongodb-core което зависи от bson който има ObjectId метод, който ми трябваше.

Чрез импортиране само на bson компонент на тази верига на зависимости, заобиколих проблема с Webpack и направих моя пакет много по-малък.

Ако използвате Npm 3, тогава има голям шанс bson е инсталиран в корена на node_modules ако вече използвате mongoose или mongodb, така че можете да import без да поставяте изрична препратка към него във вашия package.json . Това очевидно носи риск, че ако горната зависимост спре да зависи от нея, компилацията ви ще се счупи и ще трябва да npm install то независимо. Предимството на използването на този подход е, че винаги ще използвате една и съща версия на bson че горната зависимост използва, което може да е важно.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Актуализиране на поддокумент в mongodb?

  2. как да извлечете частични обекти от обектен масив в поле в mongodb

  3. Bluemix Mongodb:Неуспешно удостоверяване

  4. mongo копие от една колекция в друга (в същия db)

  5. Групово upsert с драйвер MongoDB Java 3.0