返回文章列表
6 分钟阅读

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 依赖,例如 sharpsqlite3bcrypt 等,建议同时安装编译工具:

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 构建中的环境差异。