在 Ubuntu 上备份 Node.js 相关内容,一般需要根据你指的是哪一类“备份”来区分。下面按最常见场景给你一套清晰、实用的方案。
node -v
npm -v
which node
常见安装方式:
✅ 备份 NVM 及所有 Node 版本
cp -r ~/.nvm ~/nvm-backup
✅ 只记录已安装版本(便于恢复)
nvm ls
恢复时:
# 在新系统安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 恢复 nvm 目录
cp -r nvm-backup ~/.nvm
sudo apt list --installed | grep node
备份:
sudo cp -r /usr/bin/node /backup/
sudo cp -r /usr/lib/node_modules /backup/
恢复:
sudo apt install nodejs npm
⚠️ 不推荐这种方式用于生产环境备份。
tar -czvf my-node-project.tar.gz my-node-project/
或:
rsync -av /var/www/myapp/ /backup/myapp/
cd my-node-project
npm list --depth=0
✅ 方式一:直接备份 node_modules
tar -czvf node_modules.tar.gz node_modules
✅ 方式二(推荐):备份 package.json 和 lock 文件 只在生产环境恢复:
npm ci
npm list -g --depth=0
导出:
npm list -g --depth=0 > npm-global-packages.txt
恢复:
cat npm-global-packages.txt
npm install -g <package-name>
或使用:
npm ls -g --json > npm-global.json
如果 Node 项目依赖:
cp .env .env.backup
sudo cp /etc/systemd/system/myapp.service /backup/
pm2 save
pm2 dump
恢复:
pm2 resurrect
✅ 开发 / 服务器迁移
~/.nvm
项目代码
package.json + package-lock.json
.env
pm2 dump
✅ 只需恢复运行
node -v
npm ci
pm2 resurrect
#!/bin/bash
tar -czvf node-backup-$(date +%F).tar.gz \
~/.nvm \
/var/www/myapp
Node.js 不需要“备份程序本身”,而是备份:node 版本管理方式 + 项目代码 + 依赖描述 + 环境变量。
如果你愿意,可以告诉我:
我可以给你一个完全定制化的备份方案。