All npm commands giving same error (ENOENT) - javascript
I'm using windows 8.1 x64 with all updates.
I was using nodejs 8.9.1 - I took an error on command "npm -v".
So I uninstalled this version and install 8.9.3. It gave me same error on the command.
And then I uninstalled 8.9.3 and clean all paths using this answer;
https://stackoverflow.com/a/20711410/1143249
Then installed new version 9.3.0...
But still, I'm getting same error in all npm commands.
What am I missing? How can I solve this problem?
C:\Users\UserName\Desktop>npm -v
Error: spawn C:\Program Files\nodejs\node.exe ENOENT
at _errnoException (util.js:999:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:201:19)
at onErrorNT (internal/child_process.js:389:16)
at process._tickCallback (internal/process/next_tick.js:152:19)
at Function.Module.runMain (module.js:703:11)
at startup (bootstrap_node.js:194:16)
at bootstrap_node.js:618:3
C:\Program Files\nodejs\node_modules\npm\lib\npm.js:51
throw new Error('npm.load() required')
^
Error: npm.load() required
at Object.get (C:\Program Files\nodejs\node_modules\npm\lib\npm.js:51:13)
at process.errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205:18)
at process.emit (events.js:159:13)
at process._fatalException (bootstrap_node.js:387:26)
5.5.1
events.js:136
throw er; // Unhandled 'error' event
^
Error: spawn C:\Program Files\nodejs\node.exe ENOENT
at _errnoException (util.js:999:13)
at Process.ChildProcess._handle.onexit (internal/child_process.js:201:19)
at onErrorNT (internal/child_process.js:389:16)
at process._tickCallback (internal/process/next_tick.js:152:19)
at Function.Module.runMain (module.js:703:11)
at startup (bootstrap_node.js:194:16)
at bootstrap_node.js:618:3
Update:
Everytime I uninstalled nodejs, clean/delete folders and tried these versions;
- node-v9.3.0-x64 not working
- node-v8.9.3-x64 not working
- node-v8.9.1-x64 not working
- node-v8.9.0-x64 not working
- node-v7.10.0-x64 shows version number also a small error.
Here is the output;
C:\Users\UserName\Desktop>npm -v
5.6.0
events.js:163
throw er; // Unhandled 'error' event
^
Error: spawn C:\Program Files\nodejs\node.exe ENOENT
at exports._errnoException (util.js:1050:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:607:11)
at run (bootstrap_node.js:427:7)
at startup (bootstrap_node.js:151:9)
at bootstrap_node.js:542:3
Update:
I uninstalled Avg anti-virus protection and installed node-v6.12.3-x64.msi. Still I have problems, an example; I can't run commands like;
Last Update
Thanks for all answers ( until this date: 10.02.2018 03:30 PM GTM+3 )
( I've completed some of my jobs with vm windows until this date but now I've sad news.)
I ran out all options and I have still a lot work to do with npm packages.
So, I've formatted my machine and replace with Windows 10 Enterprise x64.
I can't try new answers now but here is golden point what I've learned;
If you have mission critical machine like ci-build (jenkins etc.) or
if you don't have more than one computer (And vm is not an option)
Just backup your drive completely at time to time because you will never know
your computer softwares (like node - npm) could give an interesting errors such as this. That's what I learned, just saying...
The workaround is to ensure that C:\Users\{user}\AppData\Roaming\npm exists and is writable with your normal user account.
see Troubleshooting
Although haven't tested Node on Windows 8, I suggest you get rid of npm installation under AppData folder altogether. You can achieve this by using a Node version manager. I recommend Nodist. You can easily switch between versions as well.
With Nodist you can run the command as such:
nodist 6.2.10
One of the things I suspect is Node runtime's limited access to required files under C:/ drive - maybe something related to Windows 8. That said, you could install nodist in any drive other than C:/. Meanwhile as mentioned by #fjoe, stick with LTS versions especially v6.x.x.
Here are a few things to consider when picking your node.js version.
Version labelled as LTS (Long Term Support) are the releases they stand behind.
You can see a full list of versions here notice the LTS column. It is also interesting to see the versions of V8 and npm that are packaged with each.
Node 9.* has no official LTS release.
Node 8.* officially entered LTS on 10-31-2017 (3 months ago).
I personally have run into problems with it.
Node 7.* never officially released as LTS.
Node 6.* has 2 years of official LTS releases and they are continuing to support it.
With the most recent release on 01-02-2018.
Given this information might I recommend you try the proven long supported version 6.*
If this works then maybe hold off on version 8.* until more things get ironed out.
Other people have commented on your question about environment variables for node or npm. This is obviously not the issue as the commands are recognized and running (but they error).
Also I would recommend you follow this full uninstall guide: How to completely remove node.js from Windows
My coding buddy had a similar error yesterday, although on Linux.
The error was in the node_modules folder, so removing that and reinstalling node solved it for him.
That would be your node_module folder in AppData\Roaming\npm.
I guess the problem can be in NPM itself.
try to update your NPM.
Try to use this great approach
By the way, it's great to know what npm version you have with your changes of node.js versions.
From the logs you provided it looks like a cache bug, because of some junk that previously exists and that is causing issues.
Open the command prompt with admin privileges and follow the below steps:
1) Clear the cache: npm cache clean --force. You can also run npm cache verify.
2) Delete node_modules folder using: rm -rf node_modules.
3) Delete any package-lock.json file.
4) Remove the .npm directory.
5) Remove following directories :
5.1) C:\Users\<username>\AppData\Roaming\npm\.
5.2) C:\Users\<username>\AppData\Roaming\npm-cache.
6) Also, Try by setting environment variables:
C:\Users\<username>\AppData\Roaming\npm;C:\Program Files\nodejs.
Type in the command line: which npm.
Maybe you did not set the system value : NODE_PATH it should point to your global module location.
7) Update to the latest npm with npm i -g npm#latest.
Hope the above trick resolve your issue.
Thanks.
I guess while installing Node.js it don't able to set it's environment path due to permission.
You Need to configure Node path manually into environment variables.
Related
Streamr node install on putty (issues)
The guide I am using https://www.youtube.com/watch?v=9cdsQWRDNM4 time marker (7:27) is where it goes to all wrong. This is where I am having issue with my Streamr node install. Its a very basic install. The issue I am having is I'm very new to putty and this section isn't the same as the install is supose to be -- /root/.streamr/config/default.json but when I change it it becomes another error. The following sentence is what I am generating which becomes an error also which prevents myself from starting my node up (on my vps) Select a path to store the generated config in /home/streamr/.streamr/config/default.json Either way I am getting an error. **This is a screen shot of what I am dealing with !!! Any help with putty and setting up VPS would be great. ** can provide actual screenshot if needed!! : Welcome to the Streamr Network : Your node's generated name is Leopard Wrist Pond. : View your node in the Network Explorer: : : You can start the broker now with : streamr-broker /home/streamr/.streamr/config/default.json root#ubuntu-s-1vcpu-1gb-tor1-01:~# docker run -it -p 7170:7170 -p 7171:7171 -p 1883:1883 -v $(cd ~/.streamr Docker; pwd):/root/.streamr streamr/broker-node:latest streamr/broker-node:lates **Error: Config file not found in the default location. You can run "streamr-broker-init" to generate a confi g file interactively, or specify the config file as argument: "streamr-broker path-to-config/file.json" at readConfigAndMigrateIfNeeded (/home/streamr/network/packages/broker/dist/src/config/migration.js:155 ** :19) at Command. (/home/streamr/network/packages/broker/dist/bin/broker.js:20:69) at Command.listener [as _actionHandler] (/home/streamr/network/node_modules/commander/lib/command.js:48 8:17) at /home/streamr/network/node_modules/commander/lib/command.js:1227:65 at Command._chainOrCall (/home/streamr/network/node_modules/commander/lib/command.js:1144:12) at Command._parseCommand (/home/streamr/network/node_modules/commander/lib/command.js:1227:27) at Command.parse (/home/streamr/network/node_modules/commander/lib/command.js:897:10) at Object. (/home/streamr/network/packages/broker/dist/bin/broker.js:41:6) at Module._compile (node:internal/modules/cjs/loader:1218:14) at Module._extensions..js (node:internal/modules/cjs/loader:1272:10) npm notice npm notice New major version of npm available! 8.19.3 -> 9.4.2 npm notice Changelog: https://github.com/npm/cli/releases/tag/v9.4.2 npm notice Run npm install -g npm#9.4.2 to update! npm notice Ive tried both ways for the file name but both end in errors. Im nt sure why its not generating a /root/.streamr/config/default.json. Its giving me this strange file name that doesn't work either streamr-broker /home/streamr/.streamr/config/default.json. This one will let me finish the set up of the docker but it will not let me start the node and generates an error as seen in the code!
expo init <project name> throwing npm ERROR (windows OS)
Just started with expo and React-Native and when I run expo init ProjectName I am getting an error stating: Unexpected end of JSON input while parsing near '...,"version":"7.0.0-bet' Process exited with non-zero code: 1 Set EXPO_DEBUG=true in your env to view the stack trace. When I add the said thing in env (using set EXPO_DEBUG=true on windows), I get the following error: Error: Process exited with non-zero code: 1 at ChildProcess.child.on (C:\Users\mohit\AppData\Roaming\npm\node_modules\expo-cli\node_modules\#expo\spawn-async\build\spawnAsync.js:39:21) at ChildProcess.emit (events.js:182:13) at ChildProcess.cp.emit (C:\Users\mohit\AppData\Roaming\npm\node_modules\expo-cli\node_modules\cross-spawn\lib\enoent.js:40:29) at maybeClose (internal/child_process.js:962:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5) It's something related to 'spawn-async'. I was also getting issues with 'spawn' sometime earlier while creating a node-server...but I resolved that there and then using 'exec' instead. Tried to find this on expo forums and even in react-native issues but couldn't find a solution. Can someone plz suggest something? Is it some "windows" thing only or something related to npm releases? P.S: I also ran create-react-native-app ProjectName and again got a similar kind of error about end of JSON input!
Now I know what can be the issue, it can be just the trivial one: Please update node an npm to the newest available version and please init you project again in different directory.
You'll need to have Node.js (version 10 or newer) installed on your computer. Download the latest version of Node.js. Additionally, you'll need Git to create new projects with Expo CLI. You can download Git from here. Make sure that you have installed these two things in your device. Go to doc for expo installation
in my case. make sure you have yarn installed and update tour android studio packages, for it to work
Error: spawn git ENOENT on Windows 7
Node.js Version: v10.7.0 OS: Windows 7 x64 Scope: runtime Module: child_process I was using a script I made which was working fine and for some reason now I get the following error. Though, I'm not sure if this error is due to node, git or something else but it seems to come from node since I can run git from anywhere in my computer and the returned signal is ENOENT which I believe means it didn't find git. The only thing I've done since the last time my script worked is updating node to the latest version (v10.7.0). Linked issue on Github
Failed to load c++ bson extension
A total node noob here. I've been trying to set up a sample node app but the following error keeps popping up every time I try to run: node app Failed to load c++ bson extension, using pure JS version events.js:72 throw er; // Unhandled 'error' event ^ Error: failed to connect to [#$%67890 :27017] at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74) at EventEmitter.emit (events.js:106:17) at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15) at EventEmitter.emit (events.js:98:17) at Socket.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10) at Socket.EventEmitter.emit (events.js:95:17) at net.js:830:16 at process._tickCallback (node.js:415:13)
I guess you did not have the make tools available when you installed your mongodb library. I suggest you do xcode-select --install (on a mac) or sudo apt-get install gcc make build-essential (on ubuntu) and run rm -rf node_modules npm cache clean npm install OR just npm update based on #tobias comment (after installing build-essential) npm update
I just resolved that. When you install the mongoose module by npm, it does not have a built bson module in it's folder. In the file node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js, change the line bson = require('../build/Release/bson'); to bson = require('bson'); and then install the bson module using npm.
I have sorted the issue of getting the "Failed to load c++ bson extension" on raspbian(debian for raspberry) by: npm install -g node-gyp and then npm update
I was unable to solve this until now. First of all you have to have system packages mentioned by Pradeep Mahdevu. Those are: xcode-select --install (on a mac) or sudo apt-get install gcc make build-essential (on ubuntu) Then I've installed node-gyp npm install -g node-gyp like datadracer said but npm update also suggested by him is risky. It update all modules, which can be dangerous (sometimes API changes between versions). I suggest going into node_modules/mongodb/node_modules/bson directory and from there use node-gyp rebuild That solved the problem for me.
A common problem is that node-gyp requires Python 2.x and if your system's python points to 3.x, it will fail to compile bson, without warning. You can fix this by setting a python global key in your npm config that points to the 2.x executable on your system. For example, on Arch Linux: npm config -g set python "/usr/bin/python2"
On WIN 8.1 It seems I used a wrong version of mongoose in my package.json file. I removed the line "mongoose" : "^3.8.15" from package.json. CLI: npm install mongoose --save Now it says "mongoose": "^4.0.6" in package.json and the error I had is gone.
I'm running Ubuntu 14.04 and to fix it for me I had to create a symlink for node to point to nodejs as described here: nodejs vs node on ubuntu 12.04 Once I did that I re-ran these commands: rm -rf node_modules npm cache clean npm install
So in my case, I first tried to check under this directory /node_modules/mongoose/node_modules/, just to confirm that I have the bson module. I figured out that I did not have it in the first place, then I just run npm install bson and then npm update All got sorted.Tried and tested in Ubuntu.
just wanted to say I also had the error Failed to load c++ bson extension, using pure JS version But with none of the other errors. I tried everything and turns out the mongodb drivers that I was specifying in the package.json file was incompatible with my version of MongoDB. I changed it to my latest version which was (1.4.34) and it worked!!!
sudo npm rebuild was what fixed it for me.
I finally corrected this error by updating my mongodb dependency version to ~2.0.36 in package.json. "dependencies": { "consolidate": "~0.9.1", "express": "3.x", "mongodb": "~2.0.36", "mongoose": "^4.1.12" }
Unfortunately, All the above answers are only half right.. Took a long time to figure this out.. Mongoose bson install via npm throws warning and causes the error... npm install -g node-gyp git clone https://github.com/mongodb/js-bson.git cd js-bson npm install node-gyp rebuild This works like magic!!
For me it only take to run these commands in my api directory: rm -rf node_modules npm cache clean npm install
I just ran: sudo npm install bson and sudo npm update and all become ok.
The bson extension message is just a warning, I get it all the time in my nodejs application. Things to check: MongoDB instance: Do you have a MongoDB instance running? Config: Did you correctly configure Mongoose to your MongoDB instance? I suspect your config is wrong, because the error message spits out a very weird string for your mongodb server host name..
I fixed this problem on CentOS by sudo yum groupinstall "Development Tools" sudo npm install -g node-gyp rm -r node_modules npm cache clean npm install
I fixed it by changing line 10 of: /node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js from: bson = require('../build/Release/bson'); to: bson = require('bson');
I also got this problem and it caused my sessions not to work. But not to break either... I used a mongoose connection. I had this: var mongoose = require('mongoose'); var express = require('express'); var cookieParser = require('cookie-parser'); var expressSession = require('express-session'); var MongoStore = require('connect-mongo')(expressSession); ... var app = express(); app.set('port', process.env.PORT || 8080); app.use(bodyParser); mongoose.connect('mongodb://localhost/TEST'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function callback () { console.log('MongoDB connected'); }); app.use(cookieParser()); app.use(expressSession({ secret: 'mysecret', cookie: { maxAge: null, expires: moment().utc().add('days',10).toDate(),// 10 dagen }, store: new MongoStore({ db: 'TEST', collection: 'sessions', }), Very straightforward. But req.session stayed always empty. rm -rf node_modules npm cache clean npm install Did the trick. Watch out you dont have a 'mongodb' in your package.json! Just Mongoose and connect-mongo.
Here's how I fixed the problem on Ubuntu: ln -s /usr/bin/nodejs /usr/bin/node npm install node-gyp cd node_modules/mongodb/node_modules/bson node-gyp rebuild Inspired by #mbochynski answer, but I had to create a symbolic link first, otherwise the rebuild failed.
i was having same trouble tried so many options but in the last npm intall in my mean app folder worked.
I had this problem because I was including the node_modules folder in my Git repository. When I rebuilt the node_modules on the other system it worked. One of them was running Linux, the other OS X. Maybe they had different processor architectures as well.
I had the same problem on my EC2 instance. I think the initial cause was because I had a Node instance running when I installed Mongo. I stopped the Node service and then ran sudo npm update inside of the top level folder of my node project. This fixed the problem and everything was just like new
I was trying to run node on virtual machine (vagrant) shared folder. That was a problem. My host machine is Windows, installed node on Windows and worked like a charm. So if you are using virtual machine, just try to run node server on host machine.
I just had the same problem and literally nothing worked for me. The error was showing kerberos is causing the problem and it was one of the mongoose dependencies. Since I'm on Ubuntu, I thought there might be permission issues somewhere between the globally installed packages -- in /usr/lib/node_modules via sudo, and those which are on the user space. I installed mongoose globally -- with sudo of course, and everything began working as expected. P.S. The kerberos package now also is installed globally next to mongoose, however I can't remember if I did it deliberately -- while I was trying to solve the problem, or if it was there from the beginning.
I'm working on Docker with centOS 7, and encountered the same problem. after looking around, and make several tries, I fixed this problem by installing mongodb, and mongodb-server yum install mongodb mongodb-server I don't think this is the best way to produce the minimal container. but I can limit the scope into the following packages ============================================================================================================== Package Arch Version Repository Size ============================================================================================================== Installing: mongodb x86_64 2.6.5-2.el7 epel 57 M mongodb-server x86_64 2.6.5-2.el7 epel 8.7 M Installing for dependencies: boost-filesystem x86_64 1.53.0-18.el7 base 66 k boost-program-options x86_64 1.53.0-18.el7 base 154 k boost-system x86_64 1.53.0-18.el7 base 38 k boost-thread x86_64 1.53.0-18.el7 base 56 k gperftools-libs x86_64 2.1-1.el7 epel 267 k libpcap x86_64 14:1.5.3-3.el7_0.1 updates 137 k libunwind x86_64 1.1-3.el7 epel 61 k snappy x86_64 1.1.0-3.el7 base 40 k
For Windows 7.1, these directions helped me to fix my build environment: https://github.com/mongodb/js-bson/issues/58#issuecomment-68217275 http://christiankvalheim.com/post/diagnose_installation_problems/
I was able to resolve by uninstalling and reinstalling monk package. Initial install seemingly had a corrupt mongodb/bson dependency.
Followint #user1548357 I decided to change the module file itself. So as to avoid the problems pointed out by the valid comments below I included my changes in a postinstall script so that I can set it and forget it and be assured that it will run when my modules are installed. // package.json "scripts": { // other scripts "postinstall": "node ./bson.fix.js" }, and the script is: // bson.fix.js var fs = require('fs'); var file = './node_modules/bson/ext/index.js' fs.readFile(file, 'utf8', function (err,data) { if (err) { return console.log(err); } var result = data.replace(/\.\.\/build\/Release\/bson/g, 'bson'); fs.writeFile(file, result, 'utf8', function (err) { if (err) return console.log(err); console.log('Fixed bson module so as to use JS version'); }); });
easily kick out the problem by just add this line both try and catch block path: node_modules/mongoose/node_modules/mongodb/node_modules/bson/ext/index.js bson = require('bson'); instead bson = require('./win32/ia32/bson'); bson = require('../build/Release/bson'); That is all!!!
The only thing which helps me on Windows 7 (x64): https://stackoverflow.com/a/29714359/2670121 Reinstall node and python with x32 versions. I spent a lot of time with this error: Failed to load c++ bson extension and finally, when I installed module node-gyp (for building native addons) and even installed windows SDK with visual studio - nodejs didn't recognize assembled module bson.node as a module. After reinstalling the problem is gone. Again, What does this error mean? Actually, it's even not error. You still can use mongoose. But in this case, instead of fast native realization of bson module, you got js-realization, which is slower. I saw many tips like: "edit path deep inside node_modules..." - which is totally useless, because it does not solve the problem, but just turned off the error messages.
Get error with "line.slice()" on "karma init"
I was started to read "Developing an AngularJS Edge", and I wanted to set up the various frameworks in use. The book uses nodejs and karma, along with several other frameworks. I'm on Win7x32. I just upgraded my nodejs to the latest, v0.10.18 . I installed the Karma package with "npm install -g karma". This appeared to complete successfully. I then ran "karma init", which did this: % karma init > readline.js:507 this.line = this.line.slice(this.cursor); ^ TypeError: Cannot call method 'slice' of undefined at Interface._deleteLineLeft (readline.js:507:25) at suggestNextOption (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:167:9) at nextQuestion (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:235:12) at process (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:250:10) at Object.exports.init (C:\Users\David\AppData\Roaming\npm\node_modules\karma\lib\init.js:352:6) at Object.<anonymous> (C:\Users\David\AppData\Roaming\npm\node_modules\karma\bin\karma:25:37) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) Note that this error is virtually identical to the stack trace reported by this person a month ago, but that report has received no response.
Probably you're using the Git Bash terminal, MinTTY, which doesn't have full support for TTY. You have 4 options to fix the problem: Use CMD terminal with the Windows shell (the default Windows console) Use CMD terminal with the Bash shell (execute "C:\Program Files\Git\bin\bash.exe" --login -i in cmd terminal) Use Powershell (an alternative terminal typically installed by default in Windows environments) Use an alternative terminal (or develop a new one :stuck_out_tongue_winking_eye: ) If you just need execute isolated interactive commands like karma init, I recommend option 1 for it and then come back to Git Bash. However I would give a try to Powershell.
The reason for the error with running npm in Cygwin seems to be a known issue with npm. You can use the work around mentioned here, https://stackoverflow.com/a/22436199/2390020
Faced the same issue.try this node node_modules/karma/bin/karma init
I got the same error with MINGW64. Runs properly on default command prompt.
One other likely relevant point that I failed to mention is that I was running these commands from a Cygwin rxvt window. I just tried completely uninstalling nodejs and reinstalling it. When I brought up the rxvt window again and ran "npm install -g karma", it failed with the following: /c/Program Files/nodejs/npm: line 2: $'\r': command not found /c/Program Files/nodejs/npm: line 4: $'\r': command not found /c/Program Files/nodejs/npm: line 5: syntax error near unexpected token `$'in\r'' 'c/Program Files/nodejs/npm: line 5: `case `uname` in That led me to search for that error on the web, and I found this thread, which implies that it simply doesn't support Cygwin (unfortunate, but not a huge problem). When I then brought up a plain, ugly, unfriendly "cmd" window, both the karma installation and "karma init" completed successfully (or at least it gave me the first question in the "init" process).
In my case, the problem was that I was using the git bash terminal in windows. When I ran the command in a cmd window it worked fine.
Run the command in github shell command window. Worked for me.
If you open up the karma file it's just a node script, so an alternative way of executing it would be: node karma init This worked for me in the MINGW64/git bash shell