在 Linux 下安装 Node.js 依赖(主要是 npm / yarn / pnpm),高效 ≠ 只追求快,还包括:
✅ 网络稳
✅ 磁盘 I/O 少
✅ 安装可复现
✅ 避免权限问题
下面按「推荐程度」给你一套实战方案。
适合生产 / CI / 大项目
# 安装 pnpm
npm i -g pnpm
# 或
curl -fsSL https://get.pnpm.io/install.sh | sh -
# 安装依赖
pnpm install
优势
pnpm-lock.yaml 强一致性npm i -g yarn
yarn install
优势
yarn.lock 稳定npm install
问题
node_modules 臃肿✅ 如果必须用 npm,至少开启缓存和 flat
npm install --prefer-offline --no-audit --no-fund
npm config set registry https://registry.npmmirror.com
pnpm config set registry https://registry.npmmirror.com
yarn config set registry https://registry.npmmirror.com
pnpm install --offline
or
npm install --prefer-offline
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install 20
nvm use 20
✅ 避免:
❌ 错误做法:
sudo npm install -g xxx
✅ 正确做法:
npm config set prefix ~/.npm-global
export PATH=$HOME/.npm-global/bin:$PATH
FROM node:20-alpine
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY . .
✅ Alpine 镜像
✅ 利用 layer 缓存
✅ --frozen-lockfile 防止漂移
| 问题 | 原因 | 解决 |
|---|---|---|
node-gyp 编译失败 |
缺构建工具 | apt install build-essential python3 |
| 安装卡死 | 网络问题 | 换镜像 |
| node_modules 巨大 | npm | 换 pnpm |
| 权限错误 | sudo 安装 | 用 nvm |
| 工具 | 速度 | 稳定性 | 空间 | 推荐度 |
|---|---|---|---|---|
| pnpm | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅✅✅ |
| yarn | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ✅ |
| npm | ⭐⭐ | ⭐⭐ | ⭐ | ❌ |
Linux + Node 20 + pnpm + 国内镜像
nvm install 20
corepack enable
pnpm install
如果你愿意,可以告诉我:
我可以直接给你 最优安装脚本。