Npm error “Error: EACCES: permission denied, mkdir

2019-07-14 05:57发布

问题:

Can't install the node-sass package via npm sudo npm i, i have been trying to resolve via sudo npm i -g node-sass --unsafe-perm=true --allow-root but it doesn't effect. Chmod 777 either. I think there are something with npm permissions but i do not know Log:

gyp verb build dir attempting to create "build" dir: /home/michael/Desktop/react/node_modules/node-sass/build
gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/michael/Desktop/react/node_modules/node-sass/build'
gyp ERR! System Linux 4.15.0-47-generic
gyp ERR! command "/usr/bin/node" "/home/michael/Desktop/react/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /home/michael/Desktop/react/node_modules/node-sass
gyp ERR! node -v v11.14.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
Build failed with error code: 1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.7 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.7: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@4.11.0 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-sass@4.11.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/michael/.npm/_logs/2019-04-13T17_21_20_424Z-debug.log

回答1:

As a general recommendation, never run npm install with sudo as it will create local files owned by root instead of your user , i think you shoud try the following :

  • First change the owner of the folder : chown -R yourusername:yourusername /home/michael/Desktop/react/ , or if you don't want to type your username : chown -R $USER:$USER /home/michael/Desktop/react/
  • then run : npm install node-sass ,do not use sudo