Npm错误“错误:EACCES:权限被拒绝,mkdir'../node-sass/build'”

时间:2019-04-13 17:22:32

标签: javascript node.js npm

无法通过npm sudo npm i安装node-sass软件包,我一直在尝试通过sudo npm i -g node-sass --unsafe-perm=true --allow-root进行解析,但这无效。 Chmod 777要么。 我认为有些东西具有npm权限,但我不知道 日志:

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

4 个答案:

答案 0 :(得分:1)

作为一般建议,请勿使用sudo运行npm install,因为它将创建root而不是yourusername拥有的本地文件,我认为您应该尝试以下操作:

  • 首先更改文件夹的所有者:chown -R yourusername:yourusername /home/michael/Desktop/react/,或者如果您不想键入用户名:chown -R $USER:$USER /home/michael/Desktop/react/
  • 然后运行:npm install node-sass,不要使用sudo

答案 1 :(得分:1)

我按照@WaLid LamRaoui的回答进行操作,因为我也使用sudo运行npm install。在更改文件夹的所有者方面,这似乎已经解决了问题,但是在尝试运行npm install时仍然出现错误。然后我意识到了另一个问题,该问题与包含根拥有文件的缓存文件夹有关,因此对于那些在遵循批准的答案后也遇到此问题的人,我只是这样做了:

sudo chown -R 1003:1003 "/home/<username>/.npm"

此后,我运行了npm install,它运行良好。

答案 2 :(得分:0)

什么都不做.. 只需向其中添加--unsafe-perm

授予不安全的权限访问权限。

所以,如果您以前安装的是bcrypt库,

sudo npm install --save bcrypt

然后写

sudo npm install --unsafe-perm --save bcrypt

您完成了。

答案 3 :(得分:0)

我通过运行解决了这个问题

sudo npm install -g --unsafe-perm node-sass