npm install errors with Error: ENOENT, chmod

node.jsPermissionsInstallationNpmSudo

node.js Problem Overview


I am trying to globally install an npm module I just published. Every time I try to install, either from npm or the folder, I get this error.

npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <[email protected]>

npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/giodamlio/npm-debug.log
npm ERR! not ok code 0

I am using sudo and I have triple checked everything in the package everything should work. I did some searching around, and saw a couple of similer cases none of which have been resolved. Here is what I tried.

  • Upgrade npm (sudo npm install -g npm)
  • Clear the global npm cache (sudo npm cache clear)
  • Clear the user npm cache (npm cache clear)

I noticed that the error had to do with the file I am linking to the path, specifically when npm tried to do a chmod. That shouldn't be a problem, my lib/cli.js has normal permissions, and npm has superuser permissions during this install.

After digging through the npm docs I found an option that would stop npm from making the bin links(--no-bin-links), when I tried the install with it, it worked fine.

So what's the deal? Is this some weird fringe case bug that has no solution yet?

Edit: For reference, here is the module I uploaded

node.js Solutions


Solution 1 - node.js

Ok it looks like NPM is using your .gitignore as a base for the .npmignore file, and thus ignores /lib. If you add a blank .npmignore file into the root of your application, everything should work.

A better, more explicit approach is to use an allow-list rather than a disallow-list, and use the "files" field in package.json to specify the files in your package.

[edit] - more info on this behaviour here: https://docs.npmjs.com/cli/v7/using-npm/developers#keeping-files-out-of-your-package

Solution 2 - node.js

I ran into a similar problem,

npm cache clean

solved it.

Solution 3 - node.js

This problem somehow arose for me on Mac when I was trying to run npm install -g bower. It was giving me a number of errors for not being able to find things like graceful-fs. I'm not sure how I installed npm originally, but it looks like perhaps it came down with node using homebrew. I first ran

brew uninstall node

This removed both node and npm from my path. From there I just reinstalled it

brew install node

When it completed I had node and npm on my path and I was able to run

rm -rf ~/.npm
npm install -g bower

This then installed bower successfully.

Updating the brew formulas and upgrading the installs didn't seem to work for me, I'm not sure why. The removal of the .npm folder was something that had worked for other people, and I had tried it without success. I did it this time just in case. Note also that neither of the following solved the problem for me, although it did for others:

npm cache clean
sudo npm cache clean

Solution 4 - node.js

I was getting this error on npm install and adding .npmignore did not solve it.

> Error: ENOENT, stat 'C:\Users\My-UserName\AppData\Roaming\npm'

I tried going to the mentioned folder and it did not exist. The error was fixed when I created npm folder in Roaming folder.

This is on Windows 8.1

Solution 5 - node.js

I encountered similar behavior after upgrading to npm 6.1.0. It seemed to work once, but then I got into a state with this error while trying to install a package that was specified by path on the filesystem:

npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename

The following things did not fix the problem:

  • rm -rf node_modules
  • npm cache clean (gave npm ERR! As of npm@5, the npm cache self-heals....use 'npm cache verify' instead.)
  • npm cache verify
  • rm -rf ~/.npm

How I fixed the problem:

  • rm package-lock.json

Solution 6 - node.js

I had the same problem, and just found a handling not mentioned here. Though I'd contribute to the community:

npm install -g myapp was not copying the bin directory. I found this to be because I did not include it in the files in my package.json

"files": [
  "lib",
  "bin" // this was missing
]

Solution 7 - node.js

I was getting a similar error on npm install on a local installation:

npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'

I am not sure what was causing the error, but I had recently installed a couple of new node modules locally, upgraded node with homebrew, and ran 'npm update -g'.

The only way I was able to resolve the issue was to delete the local node_modules directory entirely and run npm install again:

cd [path/to/local/installation]
npm rm -rdf node_modules
npm install

Solution 8 - node.js

I have a similar problem specifucally : ERR! enoent ENOENT: no such file or directory, chmod 'node_modules/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv I tried all above solutions but no luck. I was using vagrant box, and the project was in a shared folder. The problems seems to be only there, when I move the project to another not shared folder (woth host), voila! problem solved. Just in case another person was using also vagrant

Solution 9 - node.js

Delete package-lock.json file then run npm install

Solution 10 - node.js

I got a similar error message when trying to npm install a bunch of dependencies. Turns out some of them fail to install on Debian/Ubuntu because they expect /usr/bin/node to be the node executable. To fix, you need do

sudo ln -s nodejs /usr/bin/node 

or better yet,

sudo apt-get install nodejs-legacy

For more info: https://stackoverflow.com/a/21171188/7581

Solution 11 - node.js

I got this error while trying to install a grunt plugin. i found i had an outdated version of npm and the error went away after updating npm to the latest version

npm install -g npm

Solution 12 - node.js

I think your compiled coffee script is missing from the published npm package. Try writing a prepublish command.

Solution 13 - node.js

In my case (multiple code ENOENT errno 34) problem was with ~/.npm/ directory access. Inside it there were some subdirs having root:root rights, which were causing problems while I run commands as normal user (without sudo). So I changed ownership of all subdirs and files inside ~/.npm/ dir into my local user and group. That did the trick on my Ubuntu (on Mac should work too).

$ sudo chown yourusername.yourgroupname ~/.npm/ -R

You should know your user name, right? If no then run $ whoami and substitute your group name with it too, like this:

$ sudo chown johnb.johnb ~/.npm/ -R

EDIT:

Test case:

From my local account /home/johnb I npm-installed globally some generator for yeoman, like this:

$ sudo npm install -g generator-laravel

Problem nature:

Above action caused some dependencies being installed inside ~/.npm/ dir, having root:root ownership (because of sudo ...). Evidently npm does not run as local user (or change dependencies subdirs ownership afterwards) when pulling dependencies and writing them to a local user subdir ~/.npm/. As long as npm would be so careless against fundamental unix filesystem security issues the problem would reoccur.

Solution:

  1. Continuosly check if ~/.npm/ contains subdirs with ownership (and/or permissions) other than your local user account, especially when you install or update something with sodo (root). If so, change the ownership inside ~/.npm/ to a local user recursively.

  2. Ask npm, bower, grunt, ... community that they address this issue as I described it above.

Solution 14 - node.js

I got the simple solution, just clear the npm cache.

sudo npm cache clear --force

then remove the node_modules & package-lock.json

sudo rm -rf node_modules
sudo rm -rf package-lock.json

Now install the dependencies module using npm and start the server

npm install && npm start

Solution 15 - node.js

I tried all the stuff I found on the net (npm cache clear and rm -rf ~/.npm), but nothing seems to work. What solved the issue was updating node (and npm) to the latest version. Try that.

Solution 16 - node.js

In Windows I had a similar error. Search paste App Data and search for the string npm.

I replaced the string 'npm' (including quotes) with 'npm.cmd' in both atlasboard\lib\package-dependency-manager.js and atlasboard\lib\cli\commands.js. That fixed the problem.

Solution 17 - node.js

The same error during global install (npm install -g mymodule) for package with a non-existing script.

In package.json:

    ...
    "bin": {
      "module": "./bin/module"
    },
    ...

But the ./bin/module did not exist, as it was named modulejs.

Solution 18 - node.js

  1. Install latest version of node
  2. Run: npm cache clean
  3. Run: npm install cordova -g

Solution 19 - node.js

You can get this error if your node.js is corrupted somehow as well. I fixed this error by uninstall/restart/install node.js completely and it fixed this error, along with the three other mysterious errors that are thrown.

Solution 20 - node.js

Be careful with invalid values for keys "directories" and "files" in package.json

If you start with a new application, and you want to start completely blank, you have to either start in a complete empty folder or have a valid package.json file in it.

If you do not want to create a package.json file first, just type: npm i some_package

Package with name "some_package" should be installed correctly in a new sub folder "node_modules".

If you create a package.json file first, type: npm init Keep all the defaults (by just clicking ENTER), you should end up with a valid file.

It should look like this:

{
  "name": "yourfoldername",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

Note that the following keys are missing: "directories", "repository" and "files". It looks like if you use incorrect values for "directories" and/or "files", you are not able to install the package. Leaving these keys out, solved the issue for me.

Also note key "main". This one is present, but it does contain an invalid value. No file "index.js" exists (yet). You can safely remove it.

Now type: npm i some_package and package with name "some_package" should be installed correctly in a new sub folder "node_modules".

Solution 21 - node.js

Had a similar error with npm in a docker container for webpack. The issue was caused by the --user command line argument of docker run, because the given user and group in there somehow messed up the rights on the local volume. Hope this helps someone :)

Solution 22 - node.js

Tried nearly everything then finally this:

Simply remove node_modules then run 'npm install' again

Solution 23 - node.js

I had the same problem on ubuntu, and got rid of the problem by closing the terminal and opening a new one.

Solution 24 - node.js

It's because there is no package.json and only package-lock.json

Try: npm init --yes

Solution 25 - node.js

Had a similar Issue but I was in wrong directory please cross check the path of thee file & the run npm start

Solution 26 - node.js

I had a similar issue with a different cause: the yo node generator had added "files": ["lib/"] to my package.json and because my cli.js was outside of the lib/ directory, it was getting skipped when publishing to npm.

(Yeoman issue at https://github.com/yeoman/generator-node/issues/63 it should be fixed soon.)

Solution 27 - node.js

I was getting the error "Error: ENOENT, stat 'C:\Users\userName\AppData\Roaming\npm'. But there was no such directory. Created the directory and the npm install started working

Solution 28 - node.js

I recently upgraded to node 4.2.1 on a Windows 7 x64 machine. When running

npm install -g bower

I got a similar error:

> npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\THE_USERNAME\AppData\Local\Temp\npm-THE_HASH'

Thinking it was related to the AppData path, I played around with

npm config edit

and

npm config edit --global

to change the prefix, cache and tmp fields but received the same error with the new paths:

> npm ERR! enoent ENOENT: no such file or directory, open 'C:\Users\THE_USERNAME\npm-temp\npm-THE_HASH'

All commands were run as Administrator, so I had full permissions.

Then I thought there were some issues with existing files so I ran:

npm cache clean

But got the same error. However, there were still some temp files lying around. Manually removing all temp data with cygwin finally fixed the problem for me:

rm -rf bower bower.cmd node_modules etc

If you only have Windows cmd, you could use something like

rmdir /S THE_TEMP_DIR

to remove all subdirectories (although if you have deeply nested node dependencies, this is notoriously problematic)

So, maybe there is some issues with upgrading npm and having versions of bower or other packages hanging around. In my case that seemed to be the problem

Solution 29 - node.js

While installing ionic I got below error

> 115648 error enoent ENOENT: no such file or directory, rename > 'C:\Users\UserName\AppData\Roaming\npm\node_modules.staging\ansi-b11f0c4b' > -> 'C:\Users\UserName\AppData\Roaming\npm\node_modules\ionic\node_modules\cordova-lib\node_modules\ansi'

There was no folder called ansi at that path. I created it there and it installed correctly.

Solution 30 - node.js

If you tried to "make install" in your project directory with this error you can try it:

rm -rf ./node_modules
npm cache clear
npm remove sails

then you can try to "make install"

If you have the "npm ERR! enoent ENOENT: no such file or directory, chmod '.../djam-backend/node_modules/js-beautify/js/bin/css-beautify.js'" then you can try to install some previous version of the js-beautify, more comments: https://github.com/beautify-web/js-beautify/issues/1247

"dependencies": {
  ...
  "js-beautify": "1.6.14"
  ...
}

and the run "make install". It seem works in case if you have not other dependencies that requires higher version (1.7.0) in this case you must downgrade this packages also in the packages.json.

or

Solution 31 - node.js

None of the above worked for me. But yarn install worked, then npm i started working. Not sure what yarn fixed, but quick and easy solution!

Solution 32 - node.js

First do

 npm rm -rdf node_modules

then do

npm install

After that install whatever files you want to add

Solution 33 - node.js

Closing Android Studio solved this error for me.

Solution 34 - node.js

I have came across similar issue, clearing cache, deleting node_modules and reinstalling didn't work, so upgrading the node version to latest one worked for me.

sudo npm install n -g

then

sudo n stable

Solution 35 - node.js

node_modules directory could be opened in another application like "neatbeans" and file creation/renaming is forbidden

ridiculously -- on windows 10 machine -- that was my only problem

Solution 36 - node.js

First install mongoose dependencies >npm install mongoose

>npm install

Solution 37 - node.js

Solve the problem simply because the modification to the file is locked, or you have locked the permissions on the partition through a specific protection program, and evidence of that is to create the project in another file or another place on the hard drive

Solution 38 - node.js

Remove node_modules, package-lock.json and run npm install

rm -rf node_modules
rm -rf package-lock.json
npm install

Solution 39 - node.js

I'm also having trouble with React 17.0.2, because right now by default installation is React 18.

How I'm dealing with this node/npm error is by:

  1. uninstall and installing back nodejs
  2. Don't delete the package-lock.json
  3. run: npm install

It works for me: Windows 10, npm 8.6.0, node v16.14.2

Solution 40 - node.js

Creating a new React app in C:\Users\CM\Downloads\react\github-profile.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...

npm ERR! path C:\Users\CM\AppData\Roaming\npm-cache_cacache\content- 

v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1fa335b1
0893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93d00f806

npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall lstat
npm ERR! Error: EPERM: operation not permitted, lstat 
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996
b1fa335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec6
5545008a3cad93d00f806'
npm ERR! { [Error: EPERM: operation not permitted, lstat 
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1f 
a335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec6554500
8a3cad93d00f806']

npm ERR! cause:
npm ERR! { Error: EPERM: operation not permitted, lstat 
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1
fa335b10893d67f7339e4 
af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93d00f806'
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'lstat',
npm ERR! path:
npm ERR! 'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content- 


npm ERR! stack:
npm ERR! 'Error: EPERM: operation not permitted, lstat 
'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996
b1fa335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015
eec65545008a3cad93d00f806'',
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'lstat',
npm ERR! path:
npm ERR! 'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content- 
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1fa335
b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93
d00f806',
npm ERR! parent: 'postcss-image-set-function' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a
text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double- 
check thenpm ERR! permissions of the file and its containing directories, or 
try  running

npm ERR! the command again as root/Administrator (though this is not 
recommended).
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\CM\AppData\Roaming\npm-cache_logs\2019-03-22T10_
27_19_722Z-debug.log


Aborting installation.
npm install --save --save-exact --loglevel error react react-dom react- 
scripts   has failed.

Deleting generated file... node_modules
Deleting generated file... package.json
Deleting GitHub-profile/ from C:\Users\CM\Downloads\reactDone.``

i was facing similar error but i tried to run create-react-app command many times and finally it was created , this was the problem with my internet connection. check your internet connection

Solution 41 - node.js

Please try this

SET HTTP_PROXY=<proxy_name>

Then try that command.It will work

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiongiodamelioView Question on Stackoverflow
Solution 1 - node.jsbadsyntaxView Answer on Stackoverflow
Solution 2 - node.jsGenjuroView Answer on Stackoverflow
Solution 3 - node.jsuser1978019View Answer on Stackoverflow
Solution 4 - node.jsVijay VepakommaView Answer on Stackoverflow
Solution 5 - node.jsIanView Answer on Stackoverflow
Solution 6 - node.jsdthreeView Answer on Stackoverflow
Solution 7 - node.jsg.careyView Answer on Stackoverflow
Solution 8 - node.jsjoaco1977View Answer on Stackoverflow
Solution 9 - node.jsClarkView Answer on Stackoverflow
Solution 10 - node.jsitsadokView Answer on Stackoverflow
Solution 11 - node.jsPrabhu MurthyView Answer on Stackoverflow
Solution 12 - node.jsleewayView Answer on Stackoverflow
Solution 13 - node.jspaperclipView Answer on Stackoverflow
Solution 14 - node.jsAbhishek PatelView Answer on Stackoverflow
Solution 15 - node.jsNikola M.View Answer on Stackoverflow
Solution 16 - node.jsVinicius CarvalhoView Answer on Stackoverflow
Solution 17 - node.jshg.View Answer on Stackoverflow
Solution 18 - node.jsDilhan JayathilakeView Answer on Stackoverflow
Solution 19 - node.jsuser9844377View Answer on Stackoverflow
Solution 20 - node.jsRWCView Answer on Stackoverflow
Solution 21 - node.jsHajoView Answer on Stackoverflow
Solution 22 - node.jsAlex StephensView Answer on Stackoverflow
Solution 23 - node.jsabass.mahdaviView Answer on Stackoverflow
Solution 24 - node.jsRachelView Answer on Stackoverflow
Solution 25 - node.jsOmkar BhavareView Answer on Stackoverflow
Solution 26 - node.jsNathan FriedlyView Answer on Stackoverflow
Solution 27 - node.jsk.iyengarView Answer on Stackoverflow
Solution 28 - node.jsAndrew JohnstonView Answer on Stackoverflow
Solution 29 - node.jsVijay MishraView Answer on Stackoverflow
Solution 30 - node.jsAlexView Answer on Stackoverflow
Solution 31 - node.jsTodd HaleView Answer on Stackoverflow
Solution 32 - node.jsShreyash ShettyView Answer on Stackoverflow
Solution 33 - node.jsCaleb PitmanView Answer on Stackoverflow
Solution 34 - node.jsRwz SthaView Answer on Stackoverflow
Solution 35 - node.jsbortunacView Answer on Stackoverflow
Solution 36 - node.jsAnoView Answer on Stackoverflow
Solution 37 - node.jsOmar ShaheenView Answer on Stackoverflow
Solution 38 - node.jsAsakkour SoufianeView Answer on Stackoverflow
Solution 39 - node.jsruhaifieView Answer on Stackoverflow
Solution 40 - node.jschandra mohanView Answer on Stackoverflow
Solution 41 - node.jsuser3030233View Answer on Stackoverflow