【问题标题】:npm throws EACCES error on installation of Angular CLInpm 在安装 Angular CLI 时抛出 EACCES 错误
【发布时间】:2017-06-21 21:22:18
【问题描述】:

我无法通过 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

【问题讨论】:

  • 您正在尝试全局安装一个模块,为了做到这一点,您需要以更高的权限执行此操作,以root 用户身份运行npm install -g angular-cli - sudo npm install -g angular-cli
  • 对于那些遇到同样错误的人,以及那些复制带有 .node 文件夹的 repo 的人!安装前删除 .node 文件夹!

标签: angular-cli npm-install


【解决方案1】:

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

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

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

【讨论】:

  • 这是一个很好的答案。按照 npm 文档链接中提供的步骤,我能够解决问题。 (我删除了一个现有节点,并按照建议通过 nvm 重新安装)
【解决方案2】:

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

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 它应该可以工作了。

【讨论】:

  • 第 3 步告诉Open or create a ~/.profile file - 你能解释一下如何做这部分吗?
  • 这将创建一个空的配置文件:touch ~/.profile
【解决方案3】:
  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

【讨论】:

    【解决方案4】:

    警告:通过输入 echo $(npm config get prefix) 来检查 $(npm config get prefix) 是否指向 /usr

    我就这样解决了

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

    为我工作

    【讨论】:

    • 谢天谢地。其他修复对我没有帮助,所以我想它必须改变整个 usr/local 目录的所有权。反正。你的传奇!
    • 这是一个非常糟糕的主意。您不应该更改 /bin /share 的所有权
    • 这破坏了我的系统(不再访问 sudo 或 su),不要使用它!!要恢复,我必须登录到恢复 shell 并发出“sudo chown -R root /usr/{lib/node_modules,bin,share}”。
    【解决方案5】:

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

    sudo npm install -g @angular/cli

    提示输入密码后输入。

    然后你就可以安装了。

    【讨论】:

      【解决方案6】:

      这对我来说是一个很棒的链接。

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

      一旦我执行了这个命令

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

      在我的终端中,角度 CLI 安装运行良好!

      【讨论】:

        【解决方案7】:

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

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

        我使用的是 Ubuntu!反正现在已经解决了。 :)

        【讨论】:

          【解决方案8】:

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

          我已经通过 nvm 安装了节点,这是避免权限问题的推荐方法。但是如果 nvm 不能在你的文件夹中执行,在某些情况下它就不起作用了。

          【讨论】:

            【解决方案9】:

            用途:

            sudo npm install -g @angular/cli
            

            然后它会工作,我的也没有工作,但它与 sudo 一起工作。

            【讨论】:

              【解决方案10】:

              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

              【讨论】:

              • 请格式化您的答案并澄清它,因为文本都在一起,所以很不清楚,不清楚这是实际答案还是您有错误。
              【解决方案11】:

              **

              别担心!!

              ** 只需使用命令形式的 Root 用户,如 前 -

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

              一切就绪

              【讨论】:

                【解决方案12】:

                您好,请按照我的指南从 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
                

                【讨论】:

                • 不推荐使用sudo
                猜你喜欢
                • 2023-03-29
                • 2022-01-15
                • 1970-01-01
                • 2020-12-19
                • 2018-11-10
                • 1970-01-01
                • 1970-01-01
                • 2018-04-09
                • 2021-06-11
                相关资源
                最近更新 更多