node.js – 在OSX中安装npm模块时拒绝权限

我正在尝试安装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

我试过this solution,但它没有解决我的问题,仍然得到同样的错误.

让我知道是否有任何我可以添加来帮助解决这个问题.

解决方法

Fixing npm permissions看到它,它曾经有所帮助,也许你也可以试一试.

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

>找到npm目录的路径:

npm config获取前缀

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

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

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

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

这会更改npm和其他一些工具(lib / node_modules,bin和share)使用的子文件夹的权限.

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

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

相反,您可以配置npm以完全使用不同的目录.在我们的例子中,这将是我们的主文件夹中的隐藏目录.

>为全局安装创建一个目录:

mkdir~ / .npm-global
>配置npm以使用新目录路径

npm config set prefix’〜/ .npm-global’
>打开或创建〜/ .profile文件添加以下行:

export PATH =〜/ .npm-global / bin:$PATH
>返回命令行,更新系统变量:

来源〜/ .profile

测试:在不使用sudo的情况下全局下载软件包.

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

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

NPM_CONfig_PREFIX=~/.npm-global

>选项3:使用包管理器为您处理此问题.

如果您在Mac OS上进行全新的Node安装,可以使用Homebrew包管理器完全避免此问题. Homebrew使用正确的权限开箱即用.

brew安装节点

我希望这有帮助

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...