适用环境:宝塔 Linux 面板(CentOS / Ubuntu / Debian),面板内置 Node 管理器、终端命令行,适配 Node 项目部署、PM2 进程管理、NPM 包管理,本文区分面板终端直接执行命令项目目录专属命令

前置说明:宝塔安装 Node 后,全局自带nodenpm;生产项目统一使用 PM2 守护 Node 服务,防止程序关闭、服务器重启后进程丢失。

一、查看基础环境命令(环境检测必备)

1. 查看 Node 版本

bash
node -v
# 等价命令
node --version
作用:检测当前系统生效的 Node.js 版本。
宝塔多 Node 版本共存注意:面板「Node 版本管理器」切换版本后,新开终端才会生效,旧终端缓存不变。

2. 查看 NPM 版本

bash
npm -v
npm --version
作用:查看配套包管理器 NPM 版本。NPM 跟随 Node 安装,负责安装项目依赖包。

3. 查看系统 Node 安装路径

bash
which node
作用:输出 Node 程序所在目录,排查多版本冲突、软链接异常。

4. 交互式 Node 控制台(测试代码)

bash
node
作用:进入 Node REPL 交互环境,可以直接运行 JS 代码测试;输入 .exit 退出控制台。

二、NPM 项目依赖核心命令(部署新项目必用)

⚠️ 重要:执行下面所有 npm 命令前,先 cd 进入你的 Node 项目文件夹

示例:cd /www/wwwroot/node-demo

1. 安装项目全部依赖

bash
npm install
# 简写
npm i
作用:读取项目内 package.json 文件,自动下载安装所有声明的依赖包。

场景:代码上传到宝塔服务器后,第一次部署项目执行。

2. 安装单个生产依赖

bash
npm install 包名
# 示例:npm install express

3. 安装开发环境依赖(仅本地调试,线上不需要)

bash
npm install 包名 --save-dev
# 简写
npm i 包名 -D
作用:依赖写入 devDependencies,打包上线时可以剔除,减小体积。

4. 卸载依赖包

bash
npm uninstall 包名
# 简写
npm un 包名

5. 清理 npm 缓存(依赖安装失败首选方案)

bash
npm cache clean --force
作用:NPM 缓存损坏导致报错、下载依赖失败时执行,强制清空缓存。

6. 查看已安装依赖

bash
npm list
# 只展示顶层依赖
npm list --depth=0

7. 运行 package.json 中配置的脚本

bash
npm run 脚本名称
# 常见示例
npm run start
npm run build
npm run dev
作用:读取 package.json scripts 配置,启动项目、打包前端 / 后端程序。
前端 Vue/React 打包、Node 后端启动脚本基本都靠这条命令。

三、PM2 进程守护命令【宝塔 Node 生产最重要!】

原生 node app.js 启动项目有致命缺陷:关闭宝塔终端,程序立刻停止。

PM2 = Node 进程守护工具,后台常驻运行、自动重启崩溃项目、日志记录、开机自启。

1. 全局安装 PM2(新装服务器只需要执行一次)

bash
npm install pm2 -g
-g 代表全局安装,所有目录均可调用 pm2 命令。

2. 启动 Node 项目

bash
pm2 start app.js
# 自定义进程名称(推荐,方便后续管理)
pm2 start app.js --name "node-api"
  • app.js:你的项目入口文件(部分项目是 index.js、server.js)
  • –name 自定义名字,后续不用输入文件名,直接用名字操作

3. 根据 package.json 脚本启动项目

bash
pm2 start "npm run start" --name 项目名
适合前端 SSR、需要通过 npm 脚本启动的项目。

4. 查看所有正在运行的 Node 进程列表

bash
pm2 list
# 简写
pm2 ls
作用:查看进程 ID、名称、运行状态、CPU 内存占用。

5. 重启项目(修改代码后重载生效)

bash
# 通过名字重启
pm2 restart node-api
# 通过进程id重启
pm2 restart 0
# 重启全部pm2项目
pm2 restart all

6. 重载项目(优雅重启,不会强制断开用户连接)

bash
pm2 reload node-api
区别:restart 强制杀死进程重启;reload 平滑热重载,API 服务优先使用 reload。

7. 停止项目

bash
pm2 stop node-api
pm2 stop all

8. 删除 PM2 进程(彻底移除,不再托管)

bash
pm2 delete node-api
pm2 delete all
stop 只是暂停;delete 会从 pm2 列表移除项目。

9. 实时查看项目运行日志(排错神器)

bash
pm2 logs node-api
# 只查看最新100行日志
pm2 logs node-api --lines 100
# 清空历史日志
pm2 flush
项目 502、接口报错、启动失败,优先看日志!

10. 监控面板(查看实时 CPU、内存)

bash
pm2 monit
可视化终端监控所有 Node 程序资源占用。

11. 设置服务器开机自启【重中之重】

bash
# 生成开机启动脚本
pm2 startup
# 保存当前所有运行的进程列表(关机重启自动拉起)
pm2 save
操作顺序:启动好所有项目 → pm2 save;服务器重启自动运行全部 Node 服务。

12. 取消开机自启

bash
pm2 unstartup systemd

四、切换 Node 源|解决国内下载缓慢

默认国外 npm 源,安装依赖经常超时失败,切换淘宝镜像源:
bash
# 设置淘宝镜像
npm config set registry https://registry.npmmirror.com
# 查看当前源是否修改成功
npm config get registry
# 恢复官方源
npm config set registry https://registry.npmjs.org

五、宝塔环境常见排错命令

  1. 权限不足报错,项目目录授权(替换为你的网站目录)
bash
chmod -R 755 /www/wwwroot/node-demo
# 需要写入文件则添加写入权限
chmod -R 777 /www/wwwroot/node-demo
不建议长期 777 权限,调试使用。
  1. 强制杀死占用端口的 Node 进程
bash
# 查询占用3000端口进程(替换端口)
lsof -i:3000
# 根据PID强制结束进程
kill -9 进程PID

六、宝塔部署 Node 标准流程(配套命令使用顺序)

  1. 宝塔安装对应版本 Node.js
  2. 终端 cd 进入项目目录:cd /www/wwwroot/你的项目目录
  3. 切换国内 npm 源
  4. 安装依赖:npm i
  5. 使用 pm2 启动项目:pm2 start app.js --name api
  6. pm2 save && pm2 startup 设置开机自启
  7. 配置宝塔反向代理,对外开放访问

七、常见疑问总结

  1. 命令提示 command not found:Node 未安装 / 宝塔切换版本后需要重启终端 / 未加 – g 全局安装工具
  2. npm install 卡住:切换淘宝镜像、执行npm cache clean --force
  3. 项目启动浏览器无法访问:放行服务器安全组端口、宝塔防火墙放行端口、检查监听地址 0.0.0.0(不要写 127.0.0.1)
  4. 关闭终端项目就停:必须使用 PM2 启动,不要直接 node app.js 运行
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。