mac npm install -g create-react-app 全局安装遇到权限问解决方案

一、问题描述

今天在使用npm install -g语法的时候,总是出错。日志文件显示对npm-modules下的子文件夹没有写的权限(在安装modules的时候会创建这个模块的文件夹)。情况如下:

mac npm install -g create-react-app 全局安装遇到权限问解决方案_第1张图片

 二、解决办法(亲测方法二 1-4步骤 执行完可以~):

方法1:修改npm默认目录的权限

1、找到npm的目录路径:

npm config get prefix

对于很对系统,路径将会是 /usr/local.

警告:如果出来的路径仅是 /usr,请调到方法2,否则你可能会设置错误。

2、将npm目录的拥有者修改为当前用户的名字(你账户的用户名):

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

这会改变npm及其他工具用到的子文件夹的权限(lib/node_modules, bin, and share)。

方法2:将npm默认目录定向到其他你具有读写权限的目录

很多时候你可能并不想改变npm所用的默认目录(如/usr)的拥有者,因为这可能会导致一些问题,比如你在与其他用户共用此系统时。
这时,你可以设置npm整个地去使用另一个目录。我将它设置为我的主文件夹下的一个隐藏的目录。

1、创建一个目录用作全局安装:

mkdir ~/.npm-global

2、配置npm使用这个新目录:

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

3、打开或者创建一个“~/.profile”文件并添加下行代码:

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

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

source ~/.profile

测试:不用sudo,全局下载安装一个包:

npm install -g jshint

不使用第2-4步的方法的话,你也可以使用相应的环境变量(比如如果你不想编辑~/.profile)来实现:

NPM_CONFIG_PREFIX=~/.npm-global

方法3:使用某个包管理器来为你解决权限问题。

如果你正在Mac OS上全新安装node,你可以使用Homebrew包管理器,避免所有的问题。Homebrew使用正确的权限设置它安装的程序来填坑。(Homebrew真的很“自酿”……)

brew install node

你可能感兴趣的:(npm,vue,react)