温馨提示×

Node.js CentOS项目如何进行版本控制

小樊
34
2025-11-19 20:54:53
栏目: 编程语言

Node.js 在 CentOS 的版本控制实践

一 版本控制的两层含义

  • 代码版本控制:使用 Git 管理源码、分支与发布。
  • 运行时版本控制:在 CentOS 上管理多个 Node.js 版本,保证不同项目使用合适的运行时。

二 代码版本控制 Git 快速落地

  • 安装与配置
    • 安装 Git:sudo yum install -y git
    • 配置身份:git config --global user.name “Your Name”git config --global user.email “you@example.com”
  • 基本流程
    • 克隆仓库:git clone
    • 跟踪与提交:git add .git commit -m “feat: xxx”
    • 推送与拉取:git push -u origin maingit pull origin main
  • 分支与协作
    • 新建分支:git checkout -b feature/login
    • 合并回主干:git checkout main && git merge feature/login
  • 常用辅助
    • 状态与历史:git statusgit log --oneline
    • 忽略依赖:echo “node_modules/” >> .gitignore
  • 服务器侧建议
    • 在服务器上通过 Git 拉取代码,避免上传 node_modules;使用 .gitignore 排除,并在服务器执行依赖安装(如 npm ci --productionyarn install --production)。

三 Node.js 运行时版本控制

  • 推荐方案 NVM(Node Version Manager)
    • 安装 NVM(示例版本:v0.39.5):
      • 执行:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
      • 使配置生效:source ~/.bashrc
    • 常用命令:
      • 安装 LTS:nvm install --lts
      • 安装指定版本:nvm install 18.17.0
      • 切换版本:nvm use 18.17.0
      • 查看已装版本:nvm ls
    • 说明:NVM 按用户安装,可在同一台 CentOS 上为不同项目切换 Node.js 版本,避免冲突。
  • 备选方案 n(全局模块)
    • 安装:npm i -g n
    • 切换:n stablen ltsn 18.17.0
    • 注意:n 以全局方式切换 Node,适合单用户/单版本场景。

四 生产部署与持续交付的最小闭环

  • 代码获取与依赖
    • git clone && cd
    • 安装依赖:npm ci --productionyarn install --production
  • 进程管理与自启
    • 启动:pm2 start app.js --name “my-app”
    • 保存与自启:pm2 save && pm2 startup systemd -u --hp
  • 反向代理与端口开放
    • 使用 Nginx 反向代理到 127.0.0.1:3000,对外暴露 80/443
    • 防火墙放行:sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --permanent --add-service=https && sudo firewall-cmd --reload
  • 环境变量
    • 使用 dotenv 管理配置,生产环境优先通过系统环境变量注入敏感信息。

五 常见问题与排查

  • 命令未找到
    • 执行 source ~/.bashrc 或重开终端,确保 nvm/n 初始化脚本已加载。
  • 权限与路径
    • 使用 nvm 安装的 node/npm 位于用户目录,无需 sudo;全局包请使用当前用户的 npm -g 安装。
  • 多项目 Node 版本不一致
    • 为每个项目在部署脚本或 package.json 中显式指定运行时版本,并在部署前执行 nvm use
  • 服务器上 node/npm 找不到
    • 若使用 n 全局安装,可能需要创建软链(如:ln -s /usr/local/node/bin/node /usr/local/bin/node),或改用 nvm 避免路径问题。

0