- 新增 01-nvm-node.md: nvm 安装、Node.js LTS 管理、全局包安装 - 原 01-09 顺延为 02-10 - 更新 SKILL.md checklist 表格 - 更新各子文档标题编号和前置引用 - self-check.sh: 加入 nvm/node 检查项,补充邮箱检查 [小糯]
97 lines
2.1 KiB
Markdown
97 lines
2.1 KiB
Markdown
# 01. Node.js & nvm
|
|
|
|
## 检查
|
|
|
|
```bash
|
|
command -v nvm || (export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && nvm --version)
|
|
node --version
|
|
which node # 应该在 ~/.nvm/ 下,不是 /usr/bin/node
|
|
```
|
|
|
|
✅ 达标:nvm 已安装,node 版本 >= v24 (LTS),由 nvm 管理(路径在 `~/.nvm/versions/` 下)
|
|
|
|
## 安装
|
|
|
|
### 1. 安装 nvm
|
|
|
|
```bash
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
```
|
|
|
|
安装完毕后加载 nvm:
|
|
|
|
```bash
|
|
export NVM_DIR="$HOME/.nvm"
|
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
```
|
|
|
|
### 2. 写入 .profile
|
|
|
|
确保每次登录自动加载 nvm:
|
|
|
|
```bash
|
|
cat >> ~/.profile << 'EOF'
|
|
|
|
# nvm
|
|
export NVM_DIR="$HOME/.nvm"
|
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
EOF
|
|
```
|
|
|
|
### 3. 安装 Node.js LTS
|
|
|
|
```bash
|
|
nvm install --lts
|
|
nvm alias default lts/*
|
|
```
|
|
|
|
### 4. 清理旧的系统 Node(如果有)
|
|
|
|
如果之前通过 apt/nodesource 装过系统级 Node,建议卸载避免冲突:
|
|
|
|
```bash
|
|
# 检查是否有系统 Node
|
|
dpkg -l | grep nodejs
|
|
|
|
# 如果有,卸载
|
|
sudo apt remove -y nodejs
|
|
sudo rm -f /etc/apt/sources.list.d/nodesource.list /etc/apt/keyrings/nodesource.gpg
|
|
```
|
|
|
|
### 5. 处理 .npmrc 冲突
|
|
|
|
如果旧的 .npmrc 里有 `prefix=` 设置,会和 nvm 冲突,需要移除:
|
|
|
|
```bash
|
|
grep prefix ~/.npmrc 2>/dev/null && mv ~/.npmrc ~/.npmrc.bak
|
|
```
|
|
|
|
### 6. 创建系统级符号链接(可选)
|
|
|
|
某些非 shell 工具(如 Hermes 浏览器引擎)可能找不到 nvm 管理的 node,创建符号链接解决:
|
|
|
|
```bash
|
|
sudo ln -sf $(which node) /usr/local/bin/node
|
|
```
|
|
|
|
⚠️ 注意:切换 node 版本后需要重新执行此命令更新符号链接。
|
|
|
|
### 7. 安装全局 npm 包
|
|
|
|
切换 node 版本后全局包需要重装:
|
|
|
|
```bash
|
|
npm i -g @shazhou/cfg @shazhou/hermes-harness @nocoo/pew @oc-forge/secret
|
|
```
|
|
|
|
## 验证
|
|
|
|
```bash
|
|
nvm --version # 应显示 0.40.x
|
|
node --version # 应显示 v24.x.x
|
|
which node # 应在 ~/.nvm/versions/ 下
|
|
npm --version # 应显示 11.x
|
|
cfg env > /dev/null && echo "cfg ✓"
|
|
pew --version && echo "pew ✓"
|
|
```
|