一尘不染

在OSX中安装npm模块时,权限被拒绝

node.js

我正在尝试安装node-g.raphael,并且出现以下错误:

Bender-03:htdocs alfred$ sudo npm install node-g.raphael --save
Password:

> contextify@0.1.15 install 
  /Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
> node-gyp rebuild

gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir 
  '/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify/build'
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/bin/node" 
  "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" 
  "rebuild"
gyp ERR! cwd 
  /Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
gyp ERR! node -v v8.8.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: contextify@0.1.15 
  (node_modules/contextify):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: contextify@0.1.15 
  install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

+ node-g.raphael@0.0.9
added 2 packages and updated 1 package in 6.556s

我已经尝试过此解决方案,但仍不能解决我的问题,仍然遇到相同的错误。

让我知道我是否可以添加任何帮助解决此问题的方法。


阅读 273

收藏
2020-07-07

共1个答案

一尘不染

Fixing npm权限中看到了这一点,它很有帮助,也许您也可以尝试一下。

选项1:将权限更改为npm的默认目录

  1. 找到npm目录的路径:

npm config get prefix

对于许多系统,这将是/usr/local

警告 :如果显示的路径是/usr,请切换到 选项2, 否则您将弄乱您的权限。

  1. 将npm目录的所有者更改为当前用户的名称(您的用户名):

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

这改变了由NPM使用的子文件夹的权限和一些其他的工具(lib/node_modulesbin,和share)。

选项2:将npm的默认目录更改为另一个目录

有时候,您不想更改npm使用的默认目录的所有权(例如/usr),因为这可能会导致一些问题,例如,如果您要与其他用户共享系统。

相反,您可以将npm配置为完全使用其他目录。在我们的情况下,这将是我们主文件夹中的隐藏目录。

  1. 创建用于全局安装的目录:

mkdir ~/.npm-global

  1. 配置npm以使用新的目录路径:

npm config set prefix '~/.npm-global'

  1. 打开或创建~/.profile文件并添加以下行:

export PATH=~/.npm-global/bin:$PATH

  1. 返回命令行,更新系统变量:

source ~/.profile

测试 :不使用全局下载软件包sudo

`npm install node-g.raphael --save`

可以使用相应的ENV变量代替步骤2-4(例如,如果您不想修改~/.profile):

NPM_CONFIG_PREFIX=~/.npm-global

选项3:使用软件包管理器为您解决此问题。

如果要在Mac OS上全新安装Node,则可以使用Homebrew程序包管理器完全避免此问题。Homebrew使用正确的权限开箱即用地进行设置。

brew install node

我希望这有帮助

2020-07-07