在 Ubuntu 上开始写 JavaScript,真正需要先处理的并不是框架,而是运行环境、包管理和日常开发工具是否顺手。本文按“先装 Node.js 和 npm、再补编辑器与权限配置、最后初始化项目并排查常见问题”的顺序整理,方便你根据自己是单项目开发、追新版本,还是要切换多套 Node.js 版本,直接选到合适方案。
先选安装方式:Ubuntu 上 Node.js 和 npm 怎么装
Ubuntu 下安装 Node.js 的常见方式有三种:系统默认仓库、NodeSource 仓库,以及 nvm。它们都能把 node 和 npm 装起来,但适用场景不一样。

方法 1:使用默认仓库安装
如果你只是想尽快把环境跑起来,默认仓库是最省事的一种方式,尤其适合第一次在 Ubuntu 上配置环境的用户。
# 更新系统包列表
sudo apt update
# 安装Node.js(含npm)
sudo apt install nodejs npm
# 验证安装(显示版本号即为成功)
node -v
# 示例输出:v18.x.x
npm -v
# 示例输出:10.x.x
注意:默认仓库提供的版本可能偏旧。文中给出的例子提到,Ubuntu 22.04 默认安装的可能是 Node.js 16.x;如果你需要更新的稳定版,更适合看下面两种方式。
方法 2:使用 NodeSource PPA 安装
如果你想在 Ubuntu 上直接拿到较新的稳定版 Node.js,同时继续沿用 apt 管理更新,NodeSource 是更常见的选择。下面示例使用的是 Node.js 20.x。
# 安装curl(用于下载脚本)
sudo apt install curl
# 添加NodeSource仓库(以Node.js 20.x为例,可替换为其他版本)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# 安装Node.js(自动包含npm)
sudo apt install -y nodejs
# 验证安装
node -v
# 示例输出:v20.x.x
npm -v
# 示例输出:10.x.x
优势在于:可以安装较新的 LTS 版本,例如 20.x,并且后续还能通过
apt upgrade更新。
方法 3:使用 nvm 安装
如果你会同时维护多个项目,或者不同项目依赖不同的 Node.js 主版本,那么 nvm 通常是更稳妥的方案。它的核心价值不是“安装更快”,而是“版本切换更灵活”。
# 安装nvm(版本管理器)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# 加载nvm环境(重新打开终端或运行)
source ~/.bashrc
# 安装最新LTS版本Node.js
nvm install --lts
# 验证安装
node -v
# 示例输出:v20.x.x
npm -v
# 示例输出:10.x.x
# 切换版本(如切换到18.x)
nvm use 18
nvm use <version>可以快速切换版本,适合需要兼容 Node.js 18、20 等不同环境的开发者。
三种安装方式怎么选
如果你只想快速上手,默认仓库就够用;如果你希望系统里的 Node.js 版本更新一些,且继续由 apt 统一管理,可以选 NodeSource;如果你本身就有多项目、多版本兼容需求,优先用 nvm,后面维护会轻松很多。
把开发工具补齐:编辑器与 npm 权限配置
装好 Node.js 之后,常见的下一步是把编辑器和全局 npm 配置补齐。前者影响编码体验,后者则直接关系到你会不会频繁遇到权限报错。

安装 Visual Studio Code
VS Code 仍然是 JavaScript 开发里最常见的编辑器之一,语法高亮、调试、扩展生态都比较完整。Ubuntu 上可以直接通过微软仓库安装。
# 导入Microsoft GPG密钥
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
# 添加VS Code仓库
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
# 更新包列表并安装VS Code
sudo apt update
sudo apt install code
# 启动VS Code(通过应用菜单或终端运行`code`)
安装完成后,可以继续添加 “ESLint”“Prettier” 等扩展,用来补充代码检查和格式化能力。
配置 npm 全局模块路径,避免权限错误
很多新手第一次执行 npm install -g 时,就会遇到权限问题。比起反复加 sudo,更常见也更稳妥的做法,是给 npm 配一个属于当前用户的全局安装目录。
# 创建全局模块目录
mkdir ~/.npm-global
# 配置npm前缀
npm config set prefix '~/.npm-global'
# 将全局路径添加到环境变量
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
# 重新加载配置
source ~/.bashrc
# 测试安装全局模块(如nodemon)
npm install -g nodemon
nodemon --version
# 示例输出:3.x.x
这样做的直接好处是:安装全局模块时不必依赖
sudo,安全性和日常使用体验都会更好。
从零开始建项目:初始化、运行与安装依赖
环境准备好后,就可以用一个最小项目验证整套流程是否正常,包括初始化 package.json、运行 JavaScript 文件,以及安装项目依赖。

创建项目目录并初始化 package.json
# 创建项目目录
mkdir my-js-project
cd my-js-project
# 初始化package.json(自动生成项目元数据)
npm init -y
# 结果:生成package.json文件(包含项目名称、版本、依赖等信息)
npm init -y 会快速生成一个默认的 package.json,后续项目名称、脚本和依赖信息都会记录在这里。
运行第一个 JavaScript 文件
# 创建入口文件(如index.js)
echo 'console.log("Hello, Ubuntu JS!");' > index.js
# 使用Node.js运行文件
node index.js
# 输出:Hello, Ubuntu JS!
如果这里已经能输出 Hello, Ubuntu JS!,说明本机的 Node.js 运行环境是通的,接下来就可以继续装依赖、写业务代码。
安装项目依赖并查看结果
# 安装Express(Web框架)
npm install express
# 添加到开发依赖(如ESLint)
npm install eslint --sa ve-dev
# 查看依赖列表
npm list
package.json会自动记录依赖信息,后续换机器或协作时,通常只需要执行一次npm install就能把依赖装齐。
常见问题排查
`node` 或 `npm` 命令找不到
这种情况通常和环境变量有关。可以先检查 Node.js 安装路径是否已经进入 PATH,例如文中提到的 /usr/bin/node,再通过 echo $PATH 查看当前环境变量内容。
全局模块安装失败
如果报错集中在权限不足,优先检查是否已经按上文配置了 npm 全局模块路径。没有配置时,很多人会直接用 sudo 安装,但从长期使用看,改用用户目录更省事。
Node.js 或依赖版本冲突
如果项目要求的 Node.js 版本和当前环境不一致,可以通过 nvm 切换版本;如果冲突发生在包本身,也可以用 npm install <package>@<version> 指定安装某个版本。
结语
把 Ubuntu 上的 JavaScript 开发环境搭起来,关键并不在于命令多复杂,而在于一开始就选对安装方式。单项目用户通常用默认仓库或 NodeSource 就够了;要长期维护不同版本项目,直接上 nvm 往往更省心。









