Ubuntu 安装 Node.js、npm 和 pnpm
记录在 Ubuntu 上安装 Node.js LTS、配置 npm 国内镜像源、启用 pnpm 和处理常见环境问题的完整流程。
适用场景
本文适合在 Ubuntu 服务器或本地开发机上安装 Node.js、npm 和 pnpm。安装方式以 Node.js LTS 版本为主,适合大多数前端项目、Next.js 项目和 Node.js 服务端项目。
npm 会随 Node.js 一起安装,pnpm 推荐通过 Corepack 启用。这样可以减少全局安装带来的版本不一致问题。
安装基础依赖
先更新系统软件源,并安装常用依赖:
sudo apt update
sudo apt install -y ca-certificates curl gnupg
如果项目里包含需要本地编译的 npm 依赖,例如 sharp、sqlite3、bcrypt 等,建议同时安装编译工具:
sudo apt install -y build-essential
添加 NodeSource 软件源
Ubuntu 官方软件源里的 Node.js 版本通常偏旧。生产环境和现代前端项目更推荐使用 Node.js LTS 版本。
添加 NodeSource 的 LTS 软件源:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
然后安装 Node.js:
sudo apt install -y nodejs
安装完成后检查版本:
node -v
npm -v
如果两个命令都能输出版本号,说明 Node.js 和 npm 已经安装成功。
配置 npm 国内镜像源
在中国大陆网络环境下,访问 npm 官方 registry 可能较慢。可以把 npm registry 切换到 npmmirror:
npm config set registry https://registry.npmmirror.com
检查配置是否生效:
npm config get registry
如果输出下面地址,说明已经切换成功:
https://registry.npmmirror.com/
如果后续需要恢复官方 registry:
npm config set registry https://registry.npmjs.org
启用 pnpm
现代 Node.js 通常包含 Corepack。Corepack 可以帮项目管理 pnpm 版本,避免不同机器使用不同 pnpm 版本导致 lockfile 变化。
先启用 Corepack:
sudo corepack enable
激活最新稳定版 pnpm:
corepack prepare pnpm@latest --activate
检查 pnpm 版本:
pnpm -v
如果 corepack 命令不存在,可以先用 npm 安装 Corepack:
sudo npm install -g corepack
sudo corepack enable
corepack prepare pnpm@latest --activate
配置 pnpm 国内镜像源
pnpm 默认也会读取 npm registry 配置。为了明确配置,可以单独设置 pnpm registry:
pnpm config set registry https://registry.npmmirror.com
检查 pnpm registry:
pnpm config get registry
如果要恢复官方 registry:
pnpm config set registry https://registry.npmjs.org
在项目中固定 pnpm 版本
如果项目使用 pnpm,建议在项目根目录写入 packageManager 字段,让团队成员和 CI 使用一致的 pnpm 版本:
corepack use pnpm@latest
执行后,package.json 中会出现类似字段:
{
"packageManager": "pnpm@10.33.0"
}
之后安装依赖时使用:
pnpm install
运行脚本时使用:
pnpm dev
pnpm build
使用 npm 安装 pnpm 的备选方式
如果不想使用 Corepack,也可以直接全局安装 pnpm:
sudo npm install -g pnpm
检查版本:
pnpm -v
这种方式简单直接,但不同机器上的全局 pnpm 版本可能不一致。团队项目更推荐使用 Corepack 和 packageManager 字段固定版本。
常用验证命令
查看 Node.js 路径:
which node
查看 npm 路径:
which npm
查看 pnpm 路径:
which pnpm
查看全局 npm 包安装位置:
npm root -g
查看当前 registry:
npm config get registry
pnpm config get registry
常见问题
npm install 很慢或超时
先确认 registry 是否已经切换到国内镜像:
npm config get registry
如果不是 https://registry.npmmirror.com/,重新设置:
npm config set registry https://registry.npmmirror.com
pnpm: command not found
先确认 Corepack 是否启用:
corepack --version
sudo corepack enable
corepack prepare pnpm@latest --activate
如果系统没有 Corepack:
sudo npm install -g corepack
sudo corepack enable
corepack prepare pnpm@latest --activate
没有权限安装全局 npm 包
如果执行 npm install -g 时遇到权限问题,优先考虑减少全局包安装。确实需要安装时,可以使用 sudo:
sudo npm install -g pnpm
本地项目依赖不需要全局安装,直接在项目目录执行:
npm install
或:
pnpm install
node 版本过旧
检查当前版本:
node -v
如果版本来自 Ubuntu 默认源,可能比较旧。可以重新添加 NodeSource LTS 软件源后安装:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
卸载 Node.js
如果需要卸载 Node.js:
sudo apt remove -y nodejs
如果还要删除不再使用的依赖:
sudo apt autoremove -y
如果之前全局安装过 pnpm 或 Corepack,也可以按需移除:
sudo npm uninstall -g pnpm corepack
小结
Ubuntu 上安装 Node.js 推荐使用 LTS 版本。npm 会随 Node.js 一起安装,国内网络环境可以把 registry 设置为 https://registry.npmmirror.com。pnpm 推荐通过 Corepack 启用,并在项目中使用 packageManager 字段固定版本,减少团队协作和 CI 构建中的环境差异。