# 💡 Summary # 🧩 Cues # 🪞Notes ## nvm 是什么? **Node Version Manager** - Node.js 版本管理工具 类比理解: - **npm** 是管理项目依赖包的(装第三方库) - **nvm** 是管理 Node.js 本身版本的(装 Node.js) --- ## 为什么需要 nvm? |场景|问题|nvm 解决方案| |---|---|---| |**多项目开发**|项目 A 要 Node 14,项目 B 要 Node 18|一键切换版本| |**版本升级测试**|想试试新版本但不想删旧版|多版本共存| |**团队协作**|本地版本和服务器不一致导致 bug|统一版本管理| |**学习新特性**|想体验最新 Node 特性|快速安装最新版| --- ## nvm 常用命令表 |命令|作用|示例| |---|---|---| |`nvm install <version>`|安装指定版本 Node|`nvm install 18.16.0`| |`nvm install --lts`|安装最新长期支持版|-| |`nvm use <version>`|切换到指定版本|`nvm use 16`| |`nvm current`|查看当前使用版本|-| |`nvm ls`|列出已安装的所有版本|-| |`nvm ls-remote`|列出可安装的所有版本|-| |`nvm alias default <version>`|设置默认版本|`nvm alias default 18`| |`nvm uninstall <version>`|卸载指定版本|`nvm uninstall 14`| --- ## 实际使用场景示例 ### 场景 1:切换项目版本 ```bash # 进入旧项目(需要 Node 14) cd old-project nvm use 14 node -v # 输出:v14.21.3 # 进入新项目(需要 Node 18) cd new-project nvm use 18 node -v # 输出:v18.16.0 ``` ### 场景 2:安装并设置默认版本 ```bash # 安装 Node 18 LTS 版本 nvm install 18 # 设为默认版本(每次打开新终端自动使用) nvm alias default 18 # 验证 nvm current # 输出:v18.16.0 ``` ### 场景 3:查看和管理版本 ```bash # 查看已安装的版本 nvm ls # 输出示例: # v14.21.3 # v16.20.0 # -> v18.16.0 (当前使用的版本) # default -> 18 (-> v18.16.0) # 卸载不需要的旧版本 nvm uninstall 14 ``` --- ## nvm vs npm vs npx 对比 |工具|管理对象|作用范围|类比| |---|---|---|---| |**nvm**|Node.js 版本|系统级|管理 Python 2/3 的 pyenv| |**npm**|项目依赖包|项目级|pip(Python 包管理)| |**npx**|临时执行工具|命令级|直接运行命令而不安装| --- ## 项目中的最佳实践 ### 1. 在项目根目录创建 `.nvmrc` 文件 ```bash # .nvmrc 18.16.0 ``` 团队成员只需执行: ```bash nvm use # 自动读取 .nvmrc 文件中的版本 ``` ### 2. 在 package.json 中指定 Node 版本 ```json { "engines": { "node": ">=18.0.0" } } ``` --- ## 常见问题 ### Q: 装了 nvm 后,npm 命令找不到? **A**: 因为每个 Node 版本都有自己的 npm,需要先 `nvm use <version>` ### Q: 每次打开终端都要重新 `nvm use`? **A**: 设置默认版本:`nvm alias default 18` ### Q: nvm 和直接安装 Node 冲突吗? **A**: 会冲突,建议先卸载直接安装的 Node,统一用 nvm 管理 --- ## 安装 nvm(参考) ```bash # macOS/Linux curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # Windows 使用 nvm-windows # 下载:https://github.com/coreybutler/nvm-windows/releases ``` --- ## 总结 ```Java 你的电脑 ├── nvm (版本管理器) │ ├── Node.js 14 │ │ └── npm 6.x │ ├── Node.js 16 │ │ └── npm 8.x │ └── Node.js 18 ✓ (当前使用) │ └── npm 9.x │ └── 项目的 node_modules/ │ ├── react │ ├── vue │ └── ... ``` **一句话总结**:nvm 让你像切换衣服一样轻松切换 Node.js 版本!