引发本文记录的导火索源自每次 npm install -g xxx 全局安装模块的时候总会遇到权限限制问题。
1、改权限,使用管理员权限sudo命令
sudo npm install -g xxx
或者
sudo chown -R $USER /usr/local
2、改变全局路径
此处不展开介绍
3、改用nvm来管理node,如果已安装node,需要卸载重新通过nvm来安装。
npm ls -g --depth=0 #查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装
sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules 目录
sudo rm /usr/local/bin/node #删除 node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #删除全局 node 模块注册的软链
然后去nvm官网获取最新版本下载指令
https://github.com/creationix/nvm/blob/master/README.md#installation
比如:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
然后去node官网看下最新node版本
https://nodejs.org/en/
比如:
nvm install 8.12.0
然后你再全局安装yarn,此时不会报权限的error了
npm install -g yarn
或者
npm i yarn -g
然后做一下淘宝镜像的配置
1、修改下载仓库为淘宝镜像
npm config set registry http://registry.npm.taobao.org/
或 yarn config set registry https://registry.npm.taobao.org
2、 如果需要修改回来
npm config set registry https://registry.npmjs.org/
或 yarn config set registry https://registry.yarnpkg.com
3、或直接采用他们的cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
如果重启之后,nvm、node、npm、yarn这些又失效了的时候,做如下操作:
打开终端输入
touch .bash_profile
回车,再输入
open -e .bash_profile
然后把下面这段代码写进打开的界面
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
注:这段命令是在安装完成之后有提示过的!
ctrl+s保存后关闭,最后在终端继续输入
source ~/.bash_profile
好了,下次再打开终端命令们就不会失效了。
接下来简单介绍一下刚刚折腾的这些家伙来路,并记录下常用指令。
nvm:Node.js Version Manager,用来管理 node 的版本。
node:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js使用了一个事件驱动、非阻塞式I/O的模型( Node.js的特性),使其轻量级又高效。 Node.js 的包管理器 nmp 是全球最大的开源库生态系统。
npm:Node Package Manager,npm 不需要单独安装。默认在安装 node 的时候,会连带一起安装 npm
cnpm:淘宝镜像,自定义命令。介绍详见https://github.com/cnpm/cnpm
yarn:Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具。它的目的是解决这些团队使用 npm 面临的少数问题,即:1、安装的时候无法保证速度/一致性;2、安全问题,因为 npm 安装时允许运行代码;3、more...
nvm -v #查看已安装的nvm版本
nvm install xxx #安装指定node版本,可模糊安装,nvm install v8.12.0 或 nvm install 8.12.0 或 nvm install 8.12
nvm ls #查看已安装的所有node版本
node -v #查看已安装的node版本
npm config get registry
yarn config get registry #查看当前源
npm config set registry https://registry.npm.taobao.org
yarn config set registry https://registry.npm.taobao.org #设置淘宝镜像
参考文献:
Node.js入门(含NVM、NPM、NVM的安装)
npm全局安装权限不足问题的正确解决办法
正确的安装和使用nvm