>PROBLEM
After installing MongoDB libs
npm i --save mongoose
npm install @types/mongoose --save-dev
-- used for MongoClient
npm install --save mongodb
npm install --save dotenv
Warning: Module not found: Error: Can't resolve
./node_modules/mongodb/lib/bson.js:12:9-28 - Warning: Module not found: Error: Can't resolve 'bson-ext' in 'M:\work\devcli_\javascript\jstopics\angularxLab\prj\node_modules\mongodb\lib'
./node_modules/mongodb/lib/deps.js:36:2-40 - Warning: Module not found: Error: Can't resolve 'kerberos' in 'M:\work\devcli_\javascript\jstopics\angularxLab\prj\node_modules\mongodb\lib'
./node_modules/mongodb/lib/deps.js:43:2-49 - Warning: Module not found: Error: Can't resolve '@mongodb-js/zstd' in 'M:\work\devcli_\javascript\jstopics\angularxLab\prj\node_modules\mongodb\lib'
./node_modules/mongodb/lib/deps.js:51:2-36 - Warning: Module not found: Error: Can't resolve 'snappy' in 'M:\work\devcli_\javascript\jstopics\angularxLab\prj\node_modules\mongodb\lib'
./node_modules/mongodb/lib/deps.js:54:75-105 - Warning: Module not found: Error: Can't resolve 'snappy/package.json' in 'M:\work\devcli_\javascript\jstopics\angularxLab\prj\node_modules\mongodb\lib'
./node_modules/mongodb/lib/utils.js:1399:32-87 - Warning: Critical dependency: the request of a dependency is an expression
./node_modules/mongodb/lib/utils.js:1407:32-68 - Warning: Module not found: Error: Can't resolve 'mongodb-client-encryption' in 'M:\work\devcli_\javascript\jstopics\angularxLab\prj\node_modules\mongodb\lib'
>SOLUTION
Sometimes, we are not sure if the environment is consistent or not.
The issue reported here was caused by the last lib installed (mongodb) in the app's env.
If you want to check this, you may skip steps and go straight to the fourth approach topic, at the end.
If you do want to recheck your app's env, you may start from the 1st approach.
First of all, stop the application, and close the IDE (VSCode/Eclipse, etc.).
1. APPROACH
- try:
npm cach verify
Retest.
2. APPROACH
If the 1st step didn't work, try to unistall the last libs installed.
In this case, it was the following:
npm uninstall mongoose
npm uninstall @types/mongoose
npm uninstall mongodb
npm uninstall dotenv
- do:
npm cach clean
or
npm cach clean --force
- reinstall them:
npm i --save mongoose
npm install @types/mongoose --save-dev
npm install --save mongodb
npm install --save dotenv
- do:
npm install
- restart the app.
3. APPROACH
If the 2nd step didn't work, remove all cache and node_modules, reinstalling the libs.
- alternatively install:
npm install node-gyp -g
- run:
npm cache clean --force
rm -Rf node_modules
npm install
npm cache verify
- restart the app.
4. APPROACH
If the 3rd step didn't work, probably it is some lib issue.
To discover the cause, the libs were tested one at a time.
To discover the cause, test the libs one at a time.
Making rollback, both libs were uninstalled.
The it was reinstalled mongoose and tested with minimal code.
Passed.
Then, it was installed MongoClient and tested with minimal code.
The issue returned.
To discover the cause, the code was commented and tested one statement at a time, restarting the app.
First:
import * as mongoDB from 'mongodb';
import * as dotenv from 'dotenv';
After, code was commented and the cause was this line:
const client = new mongoDB.MongoClient('mongodb://localhost:27017/test');
NOTE:
npm uninstal ... (all the libs to be uninstalled - rollback)
npm install
restart the app
5. APPROACH - Version Issue? Solving the mystery
Current version to be replaced:
"mongoose": "^6.5.0",
npm uninstall mongoose --no-save
6. FINAL TIPS
If you stick on the error messages, you get stuck because they have nothing to do with the real cause.
"Please, fix my mongoose version... blah, blah, blah'. :-) :-|
7. Rule of thumb
Think:
>ENV
Angular CLI: 13.2.2
Node: 16.13.1
Package Manager: npm 8.5.4
OS: win32 x64
No comments:
Post a Comment