常用工具🔧命令(nvm、cgr、npm、yarn、pnpm等)

640 阅读4分钟

Node管理 - nvm

nvm

NVM (Node Version Manager) 是一个用于管理多个 Node.js 版本的工具。 为了解决不同项目依赖的 Node.js 版本不同的问题,支持随时切换版本的工具。

推荐其他管理工具:nnvm-windowfnmnvsnodenvvolta

命令功能
nvm ls列出已经安装的Node.js版本
nvm ls-remote列出可安装的Node.js版本
nvm use <版本号>临时版本 - 只在当前窗口生效指定版本,例如: nvm use v16.15.0
nvm current显示当前正在使用的Node.js版本
nvm install <版本号>安装指定版本的Node.js,例如: nvm install v16.15.0
nvm uninstall <版本号>卸载指定版本的Node.js,例如: nvm uninstall v16.15.0
nvm alias default <版本号>永久版本 - 所有窗口生效指定版本,例如: nvm alias default v16.15.0
nvm reinstall-packages <版本号>重新安装指定版本的Node.js,并且重新安装该版本下的
全局npm包,例如: nvm reinstall-packages v16.15.0
nvm --version查看nvm版本
nvm --help查看nvm所有命令
nvm cache dir查看nvm缓存目录
nvm cache clear清除nvm缓存目录
nvm alias <别名> <版本号>给已安装的版本号设置别名,例如:nvm alias node16 v16.15.0
nvm unalias <别名>删除别名,例如:nvm unalias node16
nvm on打开nvm
nvm off关闭nvm

常用命令

nvm ls:本地一共有5个版本的node.js

  • v14.17.4
  • v16.15.0
  • v18.19.0
  • v20.10.0
  • v20.16.0

截屏2024-12-26 09.51.37.png

nvm use 、nvm current

截屏2024-12-26 09.54.51.png

踩坑tips

使用node管理工具之前下载了node,请先卸载node相关模块再安装。

// 查看已经安装在全局的模块
npm ls -g --depth=0

// 删除全局 node_modules 目录
sudo rm -rf /usr/local/lib/node_modules

// 删除 node
sudo rm /usr/local/bin/node 

// 删除全局 node 模块注册的软链
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm

镜像源管理 - cgr

cgr

cgr 是一款镜像源管理插件,可以快速的在npm和yarn中切换。

其他镜像源管理:nrm

cgr功能
cgr ls列出源仓库地址(npm、cnpm、taobao、yarn)
cgr test测试所有镜像源响应时间
cgr add <别名> <仓库地址>新增新的仓库地址,例如: cgr add company https://x.x.com/npm
cgr use <别名>切换到指定源仓库地址,例如: cgr use company
cgr delete <别名>删除源仓库地址,例如: cgr delete company

常用命令

cgr ls

截屏2024-12-26 11.36.00.png

包管理 - npm、yarn、pnpm

npm pnpm yarn

这些都是Javascript包管理器(Package Manager)。npm 是 Node.js 的官方包管理器,也是全球使用最广泛的 JavaScript 包管理工具;yarn 是由 Facebook 发起的包管理工具,目的是解决 npm 的一些性能和依赖管理问题;pnpm 是一个高效的 JavaScript 包管理器,旨在解决 npm 和 yarn 在磁盘空间使用和依赖安装方面的问题。

其他包管理:ni

npmpnpmyarn功能
npm installpnpm installyarn初始化安装依赖
npm install <包名>pnpm add <包名>yarn add <包名>安装指定依赖,
例如:npm install axios
npm uninstall <包名>pnpm remove <包名>yarn remove <包名>删除指定依赖,
例如:npm uninstall axios
npm update <包名>pnpm upgrade <包名>yarn upgrade <包名>更新指定依赖,
例如:npm update axios
npm run <命令>pnpm <命令>yarn <命令>执行package.json中的脚本命令,
例如:npm run serve
npm config get registrypnpm config get registryyarn config get registry查看当前使用镜像源
npm config set
registry <地址>
pnpm config set
registry <地址>
yarn config set
registry <地址>
全局设置镜像源,例如:npm config
set registry https://x.x.com/npm
npm --registry <地址>pnpm --registry <地址>yarn --registry <地址>临时设置镜像源,例如:npm
--registry https://x.x.com/npm
npm config get cachepnpm store pathyarn cache dir查看缓存目录
npm cache clean --forcepnpm store pruneyarn cache clean清除缓存
npm list -g --depth=0pnpm list -g --depth=0yarn global list列出全局包

常用命令

npm config get registry、pnpm config get registry、yarn config get registry

截屏2024-12-26 16.57.05.png

对比区别

特性npmpnpmyarn
安装方式npm installpnpm installyarn
锁定文件package-lock.jsonpnpm-lock.yamlyarn.lock
工作原理递归安装所有依赖到node_modules目录单个全局存储和符号硬链接扁平化依赖树
安装速度相对较慢,依赖网络速度最快,充分利用磁盘空间和网络资源快于npm,支持并行安装
缓存机制本地缓存每个项目的依赖共享存储层缓存,避免重复下载共享缓存,保证多个项目的依赖版本一致
生态系统最大,兼容性最好对npm生态完全兼容,大型项目中表现更好兼容npm特性,额外增加功能
离线支持不完全支持完全支持支持
特色功能npx执行一次性命令针对monorepo设计,多包管理和tree shaking能力严格版本管理、改进冲突策略,也支持monorepo
适用场景大部分项目优化磁盘空间和性能的大型项目适合高性能和保证一致性的项目

缺点

  1. 路径过长问题:npm
  2. 安装速度慢:npm
  3. 磁盘空间浪费:npm、yarn
  4. 使用限制:pnpm(node版本在18以上才可以使用)