npm 在安装 Angular CLI 时抛出 EACCES 错误

npm throws EACCES error on installation of Angular CLI

我无法通过 npm 全局安装 Angular Cli。 当我在 macOS 上 运行 npm install -g @angular/cli 时,我不断收到此错误:

npm ERR! node v6.9.2
npm ERR! npm  v3.10.9
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access

npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!     at Error (native)
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/apple/npm-debug.log

当您在任何平台上使用 npm install -g 并获得 EACCES 时,您正在写入您没有写入权限的目录。

有些人可能会推荐使用sudo,但这会导致以后出现更多问题。 npm documentation 提供了解决此问题的选项。

我强烈推荐 using a node version manager like nodenv 作为解决方案。

您好,请按照我的指南从 cli 安装 angular 4,无需任何权限问题:

全局安装angular-cli

sudo npm install -g @angular/cli

创建一个新项目

ng new my-app --skip-install

提供应用程序

sudo chown <username> -R my-app
cd my-app
mkdir node_modules
chmod a+w node_modules
npm install
ng serve --open

警告:通过键入 echo $(npm config get prefix)

检查 $(npm config get prefix) 是否指向 /usr

我是这样解决的

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

为我工作

我通过 运行

解决了这个问题

sudo npm install -g @angular/cli

提示输入密码后输入密码。

然后就可以安装了

尝试使用这个: 在命令行上,在您的主目录中,为全局安装创建一个目录:

mkdir ~/.npm-global

配置 npm 以使用新的目录路径:

npm config set prefix '~/.npm-global'

在您首选的文本编辑器中,打开或创建一个 ~/.profile 文件并添加以下行:

export PATH=~/.npm-global/bin:$PATH

在命令行中,更新您的系统变量:

source ~/.profile

测试在不使用 sudo 的情况下全局安装包。 现在 运行 npm install -g @angular/cli 它应该可以工作了。

  1. 为全局安装创建一个目录:

    mkdir ~/.npm-global

  2. 配置 npm 以使用新的目录路径:

    npm config set prefix '~/.npm-global'

  3. 创建一个 ~/.profile 文件

  4. 将此行添加到新的 ~/.profile 文件中:

    export PATH=~/.npm-global/bin:$PATH

  5. 更新您的系统变量:

    source ~/.profile

参考:Resolving EACCES permissions errors when installing packages globally

Ayush 的回答是我最初尝试的。然而问题依然存在。也许我没有正确执行所有步骤,我不确定。所以我再次查找 Google 并找到了这个 link https://github.com/angular/angular-cli/issues/7735#issuecomment-345546822。有两种方法可以解决它。幸运的是,第一种方法对我有用。可能有所不同的步骤可能与上面 Ayush 在答案中提到的相比:

$ echo -e "export PATH=$(npm prefix -g)/bin:$PATH" >> ~/.bashrc 
$ source ~/.bashrc

不过我正在使用 Ubuntu!不管怎样,现在已经解决了。 :)

这对我来说很棒link。

https://flaviocopes.com/npm-fix-missing-write-access-error/

一旦我执行了这个命令

sudo chown -R $USER /usr/local/lib/node_modules

在我的终端中,angular CLI 安装运行完美!

我在 Linux 上遇到了这个问题,其中存储库位于使用选项 noexec 挂载的分区上。用 exec 重新挂载分区为我解决了这个问题。

我已经通过nvm安装了node,这是避免权限问题的推荐方式。但如果 nvm 无法在您的文件夹中执行,则在某些情况下它将无法正常工作。

使用:

sudo npm install -g @angular/cli

然后就可以了,我的也不行,但是用 sudo 就可以了。

EACCES:权限被拒绝,符号链接'../lib/nod代码示例 示例 1:错误:EACCES:权限被拒绝,访问 '/usr/local/lib/node_modules'

sudo npm install -g nodemon //最简单的修复

示例 2:npm 错误!错误:EACCES:权限被拒绝,符号链接 '../lib/node_modules/@angular/cli/bin/ng' -> '/usr/bin/ng' sudo npm install -g @angular/cli sudo chown -R $USER /usr/local/lib/node_modules

**

Don't worry!!

** 只需使用命令形式 Root 用户 例如-

  1. developer@developer:~$ sudo su
  2. root@developer:/# npm install -g @angular/cli@11

全部设置