gyp ERR! stack 错误:EACCES:权限被拒绝,mkdir '/var/www/project_name/node_modules/node-sass/build'

19

我在Ubuntu 16.04上部署一个Angular项目,使用sudo npm install运行时出现了以下错误(如果不用sudo,则无法工作)。看起来npm没有安装的权限。我最近更新了nodejs到8.11.4,但仍然有同样的错误,因此显然不是版本问题。如何为它提供正确的权限?

gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/var/www/project_name/node_modules/node-sass/build'
gyp ERR! System Linux 4.4.0-1065-aws
gyp ERR! command "/usr/local/bin/node" "/var/www/project_name/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "-libsass_library="
gyp ERR! cwd /var/www/front-stormsensor/node_modules/node-sass
gyp ERR! node -v v8.11.4
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
Build failed with error code: 1

我的项目有问题吗?还是安装有误?不确定下一步该怎么做,谢谢


尝试使用sudo命令运行该命令。例如:sudo npm install - SiddAjmera
1
请确保您已经以管理员用户身份登录到服务器。通常是www-user或类似的用户。还要检查文件夹的所有者,可能需要先更改它。 - we.mamat
9个回答

71

尝试以下命令

sudo npm i --unsafe-perm

如果不起作用,请尝试以下方法

sudo rm -rf ~/.node-gyp
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
sudo npm i --unsafe-perm

2
兄弟,我爱你!我已经为这个问题奋斗了两天了..谢谢! - Yotes
谢谢你,救了我的一天。 - Mike
这对我很有效。非常感谢。救了我的一天。 - Anup Shetty

9

我通过运行以下命令解决了问题。

sudo npm i --unsafe-perm


注意:此处保留了 HTML 标签。

8

如果你想要全局安装某个软件包,可以使用以下命令:

$ sudo npm install -g <package> --unsafe-perm

这也适用于 macOS 用户的相关编程内容。 - Zain Ali

8

使用以下命令进行安装

sudo npm install --unsafe-perm=true --allow-root


3
这个解决方案来自jnambiar,对我有用。 我的操作系统是OSX 10.11.6。 基本上这是一个权限问题。
sudo rm -rf ~/.node-gyp
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
sudo npm i --unsafe-perm

上述命令帮助我解决了问题。 我发布这篇文章是为了确认这些命令对我有用,因为我在尝试安装node-sass包时遇到了2天的问题。


这是结束数小时的辛苦的关键。 - Mitch Moccia

1

如果仍有人遇到此问题,我通过按照上面第二条评论的建议并在我的Ubuntu实例中以root用户身份登录来解决了这个问题,如这里的第二个答案所述。这使我能够成功进行npm安装。


1

这个命令在Windows上对我起作用了:sudo npm install --unsafe-perm


1

我使用了 yarn 而不是 npm,它起作用了。


0

npm 权限问题真是让人头疼。上述解决方案在我的电脑上没有起作用。Yarn 成功解决了这个问题。

sudo npm i yarn -g yarn add

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接