错误:EACCES:权限被拒绝,mkdir '/usr/local/lib/node_modules/node-sass/build'

Posted

技术标签:

【中文标题】错误:EACCES:权限被拒绝,mkdir \'/usr/local/lib/node_modules/node-sass/build\'【英文标题】:Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/node-sass/build'错误:EACCES:权限被拒绝,mkdir '/usr/local/lib/node_modules/node-sass/build' 【发布时间】:2018-09-15 17:10:29 【问题描述】:

我正在尝试运行 Angular 应用程序。我执行ng serve 命令,但随后显示:

错误:找不到模块“node-sass”

【问题讨论】:

使用 npm 版本 5.2.0。更多详情请至***.com/questions/48147896/… 关注这个:- ***.com/questions/48147896/… 【参考方案1】:

解决方案:

您需要更改文件夹node_modules的所有权,因为您使用sudo npm install -g node-sass,所以它的所有权设置为root。

将所有权更改为当前用户作为组 -

sudo chown -R root:$(whoami) /usr/local/lib/node_modules/

sudo chmod -R 775 /usr/local/lib/node_modules/

并且永远不要使用sudo 进行与npm 相关的查询。

【讨论】:

为我工作,但不把 root: 放在第一个命令中的用户名之前 代替第一个命令使用sudo chown -R root:YOUR_USERNAME /usr/local/lib/node_modules/ 之后我又遇到了一个错误:checkPermissions Missing write access to /usr/local/lib/node_modules 但这个答案很有帮助***.com/a/40905762/9277453【参考方案2】:

运行此命令

sudo npm install -g <ModuleName> --unsafe-perm=true --allow-root

【讨论】:

这对我有用。任何解释都会有所帮助。 解释一下。例如,想法/要点是什么?它的安全含义是什么?它是如何工作的?为什么它有效?来自the Help Center:“...总是解释为什么你提出的解决方案是合适的以及它是如何工作的”。请通过editing (changing) your answer 回复,而不是在 cmets 中(without "Edit:"、"Update:" 或类似的 - 答案应该看起来好像是今天写的)。【参考方案3】:

试试这个

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

或者这个

sudo npm install -g --unsafe-perm --verbose @angular/cli

【讨论】:

我有一台机器使用 root 用户运行 npm install 但仍然失败。只有--unsafe-perm 有效。【参考方案4】:

我在Ionic 工作时遇到了这个问题,所以我通过将一个文件夹移回并运行以下命令解决了这个问题:

sudo chmod -R 777 project-directory

然后:

npm install node-sass --save

【讨论】:

【参考方案5】:

这是由于用户的许可。您运行npm install 命令的用户可能没有权限。所以你得到了错误。

对于该用户,只需授予该项目文件夹的权限。 在 Mac 中,使用以下步骤并授予用户对该项目文件夹的读写权限

在您的 Mac 上,选择磁盘、文件夹或文件,然后选择菜单文件获取信息

如果共享和权限中的信息不可见,请点击箭头。

如果右下角的锁被锁定,单击它以解锁获取信息选项,然后输入管理员名称和密码。

单击名称列中的用户或组,然后从弹出菜单中选择权限设置。

读取和写入:允许用户打开项目并对其进行更改。

只读:这允许用户打开项目但不能更改其 内容。

只写(投递箱):将文件夹变成投递箱。用户可以 将项目复制到投递箱,但无法打开。只有拥有者 Dropbox可以打开它。

禁止访问:阻止对该项目的所有访问。

这帮助我解决了问题。

【讨论】:

是的,这是我们想要的答案,而不是 “试试这个”“这对我有用” 没有解释和具有未指明的安全隐患。【参考方案6】:

这对我有用 -

sudo chown -R `whoami` ~/.npm
sudo chown -R `whoami` /usr/local/lib/node_modules

【讨论】:

【参考方案7】:

试试这个:npm install node-sass@version

如果你想要最新的,那就试试 npm install node-sass

如果您遇到访问问题,那么:

    Windows:管理员模式下的命令提示符,然后运行上面的。

    苹果机:

     sudo npm install node-sass
    

参考文献

ERROR in Cannot find module 'node-sass'

Windows: 'npm install node-sass' fails when module 'install.js' cannot be found. #603

【讨论】:

【参考方案8】:

如果您还没有添加 Node.js pakage.json,请尝试运行 node init。如果你已经有了这个,npm install node-sass

如果两者都存在并且您正在使用Ubuntu,请尝试使用chmod -R &lt;path to node module&gt; 更改文件夹的权限。

【讨论】:

【参考方案9】:

确保您不在 home 目录或其他位置。你需要回到根目录。

使用这个命令

cd ..
cd ~

您当前的位置应如下所示:

~$

之后,运行命令创建项目。

【讨论】:

为什么cd .. 会有所作为?

以上是关于错误:EACCES:权限被拒绝,mkdir '/usr/local/lib/node_modules/node-sass/build'的主要内容,如果未能解决你的问题,请参考以下文章

Errno::EACCES(权限被拒绝@dir_s_mkdir

Rails 4.2.0 - Errno::EACCES(权限被拒绝@dir_s_mkdir - /files)

电子制造商:EACCES:权限被拒绝

Docker:EACCES:权限被拒绝,mkdir '/app/node_modules/.cache'

将 React 添加到工作区失败,EACCES:权限被拒绝,mkdir '/home/mint/.cache/Cypress'

EACCES:权限被拒绝 mkdir ...尝试在节点项目中使用 docker 卷时