I tried to run yo angular
in a new project directory, but it gave me the ENOENT error somewhere along the way. Yes I have looked at this similar question, but its solution doesn't work for me.
I ran these things on the empty new project directory right before running yo angular
:
touch .npmignore
npm cache clear
npm cache clean
But I still get:
npm ERR! Error: ENOENT, lstat '/home/ubuntu/app_c/node_modules/grunt/ internal-tasks/bump.js'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! System Linux 3.2.0-54-virtual
npm ERR! command "/home/ubuntu/local/bin/node" "/home/ubuntu/local/bin/ npm" "install"
npm ERR! cwd /home/ubuntu/app_c
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! path /home/ubuntu/app_c/node_modules/grunt/internal-tasks/bump. js
npm ERR! fstream_path /home/ubuntu/app_c/node_modules/grunt/internal- tasks/bump.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /home/ubuntu/local/lib/node_modules/npm/ node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
How can I fix it?
Here is the history of ALL the commands, in chronological order, that I ran on a brand new Ubuntu Server 12.04.3, so you can see exactly what led up to this point, and where I have installed various packages.
This question is linked to an npm github issue.
EDIT: npm update -g
followed by npm cache clear
should work for most. However, when first installing on Mac OS you may need to navigate to your usr/local/lib/node_modules
folder once nodeJS is first installed and grant read/write permission to "Everyone". Node won't be able to installed additional workflow components globally until those permissions are released. You don't want to sudo the npm install commands, because then those tools won't have sudo access to run after the fact. Read/write permissions are changed by right-clicking the folder and going to "Get info" then changing permissions at bottom of popup.
I had this same issue on Windows 7 machine. Here are the steps I took to resolve:
- repair Node installation
- open elevated cli
- run
npm update -g
- run
npm cache clear
- run
npm install -g yo
- run
npm cache clear
- run
npm install -g generator-angular
- run
npm cache clear
- created new directory
- run
yo angular test
- run
npm cache clear
- run
grunt serve
I did run into some other issues with karma.conf.js where the paths had a \
instead of /
for bower_components. Also, I noticed the optional angular modules were injected in my app.js despite not including them all in my yo build from the cli. I have reported these issues on github.
npm ERR! command "/home/ubuntu/local/bin/node"
Are you installing in a user directory? I did and had ENOENT errors too.
I had to mkdir some directories. If they're not there, try creating some of the directories in the debug.log, like lib/node_modules.
Update node (and npm) to the latest version, and this should solve the issue.
These ENOENT
(and sometimes EACCES
) errors are often caused by old versions of npm
. Unfortunately even the latest version of node
does not distribute the current version of npm
.
After installing node
, run npm -v
. If you don't see 2.1.18
or later, you should upgrade following the official instructions here https://github.com/npm/npm/wiki/Troubleshooting#try-the-latest-stable-version-of-npm
On OSX the quick way to upgrade is sudo npm install -g npm@latest
On Windows, follow the guide in the wiki or read this answer How do I update npm on Windows?
cmd.exe
cd C:\Program Files (x86)\nodejs
npm install npm@latest
My problem was a broken package.json. Maybe this will help someone.