首页 文章

错误的ERR!通过安装@ angular / cli来代码EACCESS

提问于
浏览
0

环境:

  • Ubuntu 16.04

  • node v8.11.1(随包管理器一起安装)

  • npm v5.6.0

在完全安装npm并尝试安装@ angular / cli之后

npm install -g @angular/cli

我收到一个与EACCESS相关的错误,它可能与权限有关,因为它随root访问而消失 . 问题是不建议以这种方式使用它,所以我该如何解决这个问题呢?

Console ERROR

$ npm install -g @angular/cli
npm WARN checkPermissions Missing write access to /usr/lib/node_modules
npm ERR! path /usr/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/usr/lib/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/user/.npm/_logs/2018-04-25T15_23_36_781Z-debug.log

File .npm/_logs/2018-04-25T15_23_36_781Z-debug.log

2566 warn checkPermissions Missing write access to /usr/lib/node_modules
2567 verbose stack Error: EACCES: permission denied, access '/usr/lib/node_modules'
2568 verbose cwd /opt/workspace/roscam-front
2569 verbose Linux 2.6.32-042stab120.19
2570 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "-g" "@angular/cli"
2571 verbose node v8.11.1
2572 verbose npm  v5.6.0
2573 error path /usr/lib/node_modules
2574 error code EACCES
2575 error errno -13
2576 error syscall access
2577 error Error: EACCES: permission denied, access '/usr/lib/node_modules'
2577 error  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
2577 error   stack: 'Error: EACCES: permission denied, access \'/usr/lib/node_modules\'',
2577 error   errno: -13,
2577 error   code: 'EACCES',
2577 error   syscall: 'access',
2577 error   path: '/usr/lib/node_modules' }
2578 error Please try running this command again as root/Administrator.
2579 verbose exit [ -13, true ]

1 回答

  • 0

    处理此问题的一个选项是将npm的默认目录更改为使用其他目录 .

    • 我们需要为全局安装创建一个目录,在此示例中位于用户目录中:
    mkdir ~/.npm-global
    
    • 我们配置npm使用新的目录路径:
    npm config set prefix '~/.npm-global'
    
    • 打开或创建〜/ .profile文件并添加以下行:
    export PATH=~/.npm-global/bin:$PATH
    
    • 我们更新您的系统变量:
    source ~/.profile
    

    现在我们可以通过全局安装软件包来测试,而无需使用root权限 .

    npm install -g jsonfile
    

    另一个选择是避免所有这些步骤并修改〜/ .profile,它将通过使用以下命令定义一个ENV变量(:

    NPM_CONFIG_PREFIX=~/.npm-global
    

    npm reference

相关问题