npm install -g不适用于任何东西

时间:2018-07-07 22:52:59

标签: node.js npm

我正在尝试在终端中使用以下命令使用npm安装gatsbyjs:npm install -g gatsby-cli。我收到警告和很多错误:

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
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!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
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! A complete log of this run can be found in:
npm ERR!     /Users/simanshrestha/.npm/_logs/2018-07-07T22_48_08_615Z-debug.log

我尝试使用以下方法重新安装Node.js并更新npm:npm install npm @ latest -g,但只收到一堆检查权限警告和以下错误:

npm ERR! path /usr/local/lib/node_modules/npm/node_modules/cacache/node_modules/ssri
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/node_modules/cacache/node_modules/ssri'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/cacache/node_modules/ssri'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules/npm/node_modules/cacache/node_modules/ssri\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules/npm/node_modules/cacache/node_modules/ssri' }
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!     /Users/simanshrestha/.npm/_logs/2018-07-07T22_49_59_092Z-debug.log

我一直在尝试解决权限错误,但是卡住了(我真的是新手)。

编辑:我不想使用sudo,因为我已经看到它可能会导致多个论坛混乱。

2 个答案:

答案 0 :(得分:1)

您应该以管理员身份运行npm install -g。

如控制台所说。

答案 1 :(得分:1)

对于您的问题,有3种可能的解决方案,它们基本上是没有root访问权限才能将模块安装到root node_modules dir:

  1. 运行sudo npm i -g package@latest。这样可以解决您的问题,但每次都会要求输入root密码。

  2. 使用npm config set prefix

  3. here所述更改默认全局模块文件夹
  4. 安装并使用nvm来管理nodenpm,它是现成的,可以在本地用户中正确设置文件夹结构。因此,不需要额外的权限或弄乱配置前缀。