错误的ERR!安装@ angular / cli

时间:2018-04-25 15:56:41

标签: node.js angular npm angular-cli npm-install

环境:

  • Ubuntu 16.04
  • node v8.11.1(与软件包管理器一起安装)
  • npm v5.6.0

干净安装npm并尝试安装@ angular / cli

npm install -g @angular/cli

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

控制台错误

$ 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

档案.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 ]

2 个答案:

答案 0 :(得分:1)

解决此问题的一个方法是更改​​npm的默认目录以使用其他目录。

  1. 我们需要为全局安装创建一个目录,在此示例中位于用户目录中:

    mkdir ~/.npm-global
    
  2. 我们配置npm使用新的目录路径:

    npm config set prefix '~/.npm-global'
    
  3. 打开或创建〜/ .profile文件并添加以下行:

    export PATH=~/.npm-global/bin:$PATH
    
  4. 我们更新您的系统变量:

    source ~/.profile
    
  5. 现在我们可以通过在不使用root权限的情况下全局安装软件包进行测试。

    npm install -g jsonfile
    

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

    NPM_CONFIG_PREFIX=~/.npm-global
    

    npm reference

答案 1 :(得分:0)

我也有EACCES权限错误。我重新安装了Ubuntu 18.04。 16.04版本可能没有太大不同。一切对我有用。希望这会有所帮助。

-----------对您来说,您应在此处应用此代码

sudo apt-get install curl software-properties-common
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install nodejs
node -v
npm -v
npm init
whoami

which npm              # returned /usr/bin
npm config get prefix  # returned /usr
npm config set prefix /usr/bin
npm config get prefix
ls -la /usr/bin/npm    # has a symbolic link to ../lib/node_modules/npm/bin/npm-cli.js
sudo chown -R your_user /usr/bin/npm   # NOT /usr/bin or we lock out sudo too!!!!
sudo chown -R your_user app-folder/
ls -la /usr/bin/npm
npm init  # I was curious to see if this still works
npm install  # WORKS GREAT!!! No need for sudo now.:)

-----------到那里

这是我安装上述工具后的用例。如果以上设置正确,您的工作也将成功。

npm start # script
npm run start:prod  # works as well
npm i debug --save-dev     # works but need to install 'make'
sudo apt install build-essential
npm i debug --save-dev    # installed and launched successfully!

注意:如果要安装 npm i debug --global代替, 您可能仍然会收到该EACCES权限错误,因为您的本地用户将无法访问文件系统中其他位置的root权限。这就是为什么我们使用“更改所有权”(即chown your_user:请参见代码中的上方)的原因。