错误:EACCES:权限被拒绝,访问'/ usr / local / lib / node_modules / ANGULAR

时间:2020-07-04 17:20:51

标签: node.js angular npm

我正在尝试生成一个新的Angular项目:

npm install -g @angular/cli

然后弹出一个我不知道如何解决的错误:

npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules/@angular/cli/node_modules/@schematics/update/node_modules/npm-package-arg/node_modules/semver
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/@angular/cli/node_modules/@schematics/update/node_modules/npm-package-arg/node_modules/semver'
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/@angular/cli/node_modules/@schematics/update/node_modules/npm-package-arg/node_modules/semver']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules/@angular/cli/node_modules/@schematics/update/node_modules/npm-package-arg/node_modules/semver\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path:
npm ERR!    '/usr/local/lib/node_modules/@angular/cli/node_modules/@schematics/update/node_modules/npm-package-arg/node_modules/semver' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/simonanikolova/.npm/_logs/2020-07-04T16_47_21_985Z-debug.log

一些其他可能与问题有关的特定事物:

  • 我在Mac OS上有两次登录:管理员用户和个人用户

  • macOS Catalina版本:10.15.5

  • npm版本:6.14.5

  • TypeScript版本:3.5.3

  • 角度版本:

    Angular CLI:9.0.0 节点:10.16.1 操作系统:darwin x64

    角度:未定义 ... 常春藤工作区:

    包装版本 @ angular-devkit / architect 0.900.0(仅cli) @ angular-devkit / core 9.0.0(仅CLI) @ angular-devkit / schematics 9.0.0(仅CLI) @ schematics /角度9.0.0(仅限cli) @ schematics /更新0.900.0(仅CLI) webpack 4.43.0

ALSO::在研究如何解决该问题时,我试图更改文件权限: 我切换到管理员用户,然后在终端中输入:

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

如果有人可以帮助我,我将非常高兴!谢谢!

1 个答案:

答案 0 :(得分:2)

如果使用手动安装,则使用sudo安装软件包后,必须继续使用它来安装所有软件包。

解决您的情况可能会改变您的NPM's default folder

要最大程度地减少权限错误的可能性,可以将npm配置为使用其他目录。在此示例中,您将在主目录中创建并使用隐藏目录。

  • 备份计算机
  • 在命令行的主目录中,创建用于全局安装的目录: mkdir ~/.npm-global
  • 配置npm以使用新的目录路径: npm config set prefix '~/.npm-global'
  • 在您喜欢的文本编辑器中,打开或创建〜/ .profile文件并添加以下行:export PATH=~/.npm-global/bin:$PATH
  • 在命令行上,更新系统变量: source ~/.profile
  • 要测试新配置,请在不使用sudo的情况下全局安装软件包:npm install -g jshint
  • 您可以使用相应的ENV变量来代替步骤2-4(例如,如果您不想修改〜/ .profile):NPM_CONFIG_PREFIX=~/.npm-global

另一个方法可能是使用节点管理器软件包(nvm,n)重新安装NPM