在 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

我已经尝试过 这个解决方案,但它并没有解决我的问题,仍然出现同样的错误。

让我知道是否可以添加任何内容来帮助解决此问题。

原文由 NotoriousWebmaster 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 474
2 个回答

修复 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_modulesbinshare )。

选项 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`

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

 NPM_CONFIG_PREFIX=~/.npm-global

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

如果你在 Mac OS 上重新安装 Node,你可以使用 Homebrew 包管理器完全避免这个问题。 Homebrew 使用正确的权限设置开箱即用。

brew install node

我希望这有帮助

原文由 antzshrek 发布,翻译遵循 CC BY-SA 4.0 许可协议

与其更改您的文件权限并冒着在系统中造成混乱的风险(我所做的事情并且可能会在以后后悔),不如我建议我在事后发现以下内容。

解决全局安装包时的 EACCES 权限错误

原文由 kiusau 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题