Error: Cannot find module 'underscore' thr

2019-05-03 17:15发布

问题:

Error: Cannot find module 'underscore' thrown in console for all Meteor commands

After every meteor or meteorite command such as meteor or mrt create myapp the following error is thrown. This error seemed to appear suddenly, as meteor was functional the night before and no changes have been made since.

Austins-MacBook-Pro:Projects austinrivas$ mrt create test-app

/Users/austinrivas/.meteor/tools/3cba50c44a/tools/meteor.js:1480
}).run();
   ^
Error: Cannot find module 'underscore'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at /Users/austinrivas/.meteor/tools/3cba50c44a/tools/meteor.js:10:11

I have tried installing underscore manually with sudo npm install -g underscore which returns

Austins-MacBook-Pro:Projects austinrivas$ sudo npm install -g underscore
Password:
npm http GET https://registry.npmjs.org/underscore
npm http 200 https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz
npm http 200 https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz
npm WARN unmet dependency /usr/local/share/npm/lib/node_modules/phonegap/node_modules/cordova requires colors@'>=0.6.0' but will load
npm WARN unmet dependency /usr/local/share/npm/lib/node_modules/phonegap/node_modules/colors,
npm WARN unmet dependency which is version 0.6.0-1
npm WARN unmet dependency /usr/local/share/npm/lib/node_modules/phonegap/node_modules/node-static requires colors@'>=0.6.0' but will load
npm WARN unmet dependency /usr/local/share/npm/lib/node_modules/phonegap/node_modules/colors,
npm WARN unmet dependency which is version 0.6.0-1
underscore@1.5.2 /usr/local/share/npm/lib/node_modules/underscore

My ~/.bash_profile has the following paths

export PATH=/usr/local/share/npm/bin:$PATH
export NODE_PATH="/usr/local/share/npm/lib/node_modules"
export NODE_OPTIONS="--debug"

I've even tried reinstalling node and doing an npm cache clean but I'm not sure what else to try.

Any further insight would be appreciated.

UPDATE

Running npm list -g underscore returns the following

Austins-MacBook-Pro:~ austinrivas$ npm list -g underscore
npm WARN unmet dependency /usr/local/share/npm/lib/node_modules/phonegap/node_modules/cordova requires colors@'>=0.6.0' but will load
npm WARN unmet dependency /usr/local/share/npm/lib/node_modules/phonegap/node_modules/colors,
npm WARN unmet dependency which is version 0.6.0-1
npm WARN unmet dependency /usr/local/share/npm/lib/node_modules/phonegap/node_modules/node-static requires colors@'>=0.6.0' but will load
npm WARN unmet dependency /usr/local/share/npm/lib/node_modules/phonegap/node_modules/colors,
npm WARN unmet dependency which is version 0.6.0-1
/usr/local/share/npm/lib
├─┬ meteorite@0.6.11
│ ├─┬ ddp@0.3.4
│ │ └─┬ meteor-ejson@0.6.3
│ │   └── underscore@1.4.4
│ └── underscore@1.5.1
├─┬ phonegap@3.0.0-0.14.0
│ └─┬ cordova@3.0.0
│   ├─┬ follow-redirects@0.0.3
│   │ └── underscore@1.5.1
│   └─┬ plugman@0.9.10
│     ├─┬ dep-graph@1.1.0
│     │ └── underscore@1.2.1
│     └── underscore@1.4.4
├── underscore@1.5.2
└─┬ ungit@0.1.8
  └── underscore@1.4.4

回答1:

I was able to resolve this error by completely uninstalling / reinstalling meteor and meteorite through the following steps.

sudo rm /usr/local/bin/meteor
rm -rf ~/.meteor
sudo mrt uninstall
sudo mrt uninstall --system
sudo chown -R `whoami` ~/.npm
curl https://install.meteor.com | /bin/sh
sudo -H npm install -g meteorite

I was able to verifying everything was working properly by running meteor --version and mrt create test-app



回答2:

First off, your meteorite is out of date. To update meteorite run (sudo if applicable):

npm update -g meteorite

If you ran the 'mrt' or 'meteor' command as sudo in the past, it will cause issues. Clear meteorite by running:

sudo mrt uninstall
sudo mrt uninstall --system
sudo chown -R `whoami` ~/.npm

You also want to remove the 'build' folder inside existing projects, located in '/project/.meteor/local/build'