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

ojsjcaue  于 2022-12-23  发布在  其他
关注(0)|答案(5)|浏览(208)

我正在尝试安装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,但它没有解决我的问题,仍然得到相同的错误。
如果有什么我能补充的帮助解决这个问题请告诉我。

ukxgm1gy

ukxgm1gy1#

看到这个从Fixing npm permissions和它的帮助,也许你可以给它一个镜头以及。

选项1:将权限更改为npm的缺省目录

1.查找npm目录的路径:
第一个月
对于许多系统,这将是/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使用完全不同的目录,在我们的例子中,这将是我们home文件夹中的一个隐藏目录。
1.创建全局安装目录:
mkdir ~/.npm-global
1.配置npm以使用新目录路径:
npm config set prefix '~/.npm-global'
1.打开或创建一个~/.profile文件并添加以下行:
x1米11米1x
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

toiithl6

toiithl62#

我用途:
1.第一个月

  1. sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
  2. sudo npm install
6ie5vjzr

6ie5vjzr3#

与其更改您的文件权限并冒着系统内混乱的风险(我所做的事情可能会在以后后悔),不如让我建议以下我在事后发现的事情。
Resolving EACCES permissions errors when installing packages globally

vojdkbi0

vojdkbi04#

要在Mac/Linux上获得访问权限,只需使用以下命令

sudo npm install -g {package_name}

你可以走了。

wydwbb8l

wydwbb8l5#

通过运行以下命令为我修复了问题。
sudo npm安装-g @Angular /cli
能够安装角。
然后试着运行ng -v来确认。

相关问题