当前位置: 首页 > 知识库问答 >
问题:

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

阮星火
2023-03-14

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

我尝试过这个解决方案,但它不能解决我的问题,仍然得到同样的错误。

让我知道,如果有什么我可以补充,以帮助解决这个问题。

共有3个答案

漆雕升
2023-03-14

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

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

松高爽
2023-03-14

我使用:

  1. npm配置获取前缀
孟华晖
2023-03-14

从修复npm权限中看到了这一点,这很有帮助,也许你也可以尝试一下。

>

npm配置获取前缀

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

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

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

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

这将更改npm和其他一些工具(lib/node_modules、binshare)使用的子文件夹的权限。

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

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

>

  • 为全局安装创建目录:

    mkdir~/。npm全球

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

    npm配置设置前缀'~/. npm-global'

    打开或创建一个~/。配置文件文件并添加此行:

    导出路径=~/。npm全局/bin:$PATH

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

    source~/。个人资料

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

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

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

    NPM_CONFIG_PREFIX=~/.npm-global
    

    如果要在Mac OS上重新安装Node,可以使用自制软件包管理器完全避免此问题<代码>自制使用正确的权限进行开箱即用的设置。

    brew安装节点

    我希望这能有所帮助

  •  类似资料:
    • 问题内容: 我正在尝试安装,并且出现以下错误: 我已经尝试过此解决方案,但仍不能解决我的问题,仍然遇到相同的错误。 让我知道我是否可以添加任何帮助解决此问题的方法。 问题答案: 从Fixing npm权限中看到了这一点,它很有帮助,也许您也可以尝试一下。 选项1:将权限更改为npm的默认目录 找到npm目录的路径: 对于许多系统,这将是。 警告 :如果显示的路径是,请切换到 选项2, 否则您将弄乱

    • 问题内容: 尝试安装npm模块时,出现奇怪的权限错误。我从头开始,因此我确定我确实可以访问,但是由于某些原因,它一直在抱怨错误: 堆栈错误:EACCES:权限被拒绝,mkdir’/ usr / lib / node_modules / joplin / node_modules / sqlite3 / build’ 我尝试重新启动计算机,并使用chmod 777 创建目录,但仍然无法正常工作。 编

    • 我已设法破坏了我的安装,每当我尝试使用安装包时,我都会收到以下错误消息: 未处理的拒绝错误:eAcces:权限被拒绝,打开“/users/marknorgate/.npm/_cacache/TMP/A449402d”

    • 我试图在MacOS10.12上安装sudoNPM-gappium。5. 我得到这个错误: 信息Chromedriver安装为平台“mac”和架构“64”安装Chromedriver版本“2.30” 信息Chromedriver安装打开临时文件以将Chromedriver\u mac64写入。。。 错误:EACCES:权限拒绝,mkdir “/usr/local/lib/node_modules/a

    • 问题内容: 我为此付出了一切,所以希望你们能帮助我。在带有docker-machine的OSX 10.11.2中,我有一个docker- compose文件,该文件应构建一个本地Dockerfile并将MySQL容器附加到该文件。MySQL容器应该在我存储数据库数据的地方安装一个本地文件夹,因此,如果容器或VM关闭,我可以重新启动它而不会丢失数据。问题是,当我运行它时,它将引发权限错误: 我已经尝