Node.js npm错误!通过安装@angular/cli对每个访问进行编码

Node.js npm错误!通过安装@angular/cli对每个访问进行编码,node.js,angular,npm,angular-cli,npm-install,Node.js,Angular,Npm,Angular Cli,Npm Install,环境: Ubuntu 16.04 节点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 Mis

环境:

  • Ubuntu 16.04
  • 节点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
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 ]

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

  • 我们需要为全局安装创建一个目录,在本例中为用户目录:

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

    npm config set prefix '~/.npm-global'
    
  • 打开或创建~/.profile文件并添加此行:

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

    source ~/.profile
    
  • 现在,我们可以通过在不使用根权限的情况下全局安装包来进行测试

    npm install -g jsonfile
    
    另一个避免所有这些步骤并修改~/.profile的选项是使用以下命令(:


    我也有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——改为全局

    您可能仍然会收到EACCES权限错误,因为您的本地用户将无法访问文件系统中其他位置的根权限。这就是为什么我们使用“更改所有权”(即
    chown your_user
    :请参见上述代码).

    不推荐?错误中说,请以root/Administrator的身份再次尝试运行此命令。这可能不理想,但建议使用。是的,这是一种误导。我想这将是默认设置,并且很容易解决此问题,但npm文档建议更改默认目录以防止权限被删除rorsI根据这段视频编译了我上面的解决方案:步骤3说打开或创建一个~/.profile文件-你能解释一下如何执行这部分步骤吗?
    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!