温馨提示×

CentOS 下 Node.js 项目如何管理

小樊
49
2025-09-01 17:25:01
栏目: 编程语言

CentOS下Node.js项目管理指南

1. 环境准备:安装Node.js与包管理工具

在CentOS上管理Node.js项目前,需先搭建基础环境。推荐通过NodeSource仓库或**NVM(Node Version Manager)**安装Node.js,以支持多版本切换或获取最新稳定版。

  • NodeSource安装(适合固定版本)
    运行以下命令添加NodeSource仓库并安装Node.js(以14.x为例):
    curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
    sudo yum install -y nodejs
    
  • NVM安装(适合多版本管理)
    通过NVM可灵活安装、切换Node.js版本:
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    source ~/.bashrc  # 使NVM生效
    nvm install --lts  # 安装最新LTS版本
    nvm use 14.17.0    # 切换到指定版本(如14.17.0)
    
  • 验证安装
    执行node -v(查看Node.js版本)、npm -v(查看npm版本)确认安装成功。

2. 依赖管理:使用npm/yarn/pnpm锁定版本

依赖管理是项目稳定性的核心,需通过package.json记录依赖,并用锁定文件确保环境一致性。

  • 初始化项目
    在项目根目录运行npm init -y(或yarn init),生成包含项目元数据的package.json文件。
  • 安装依赖
    • 生产依赖(如express):npm install express --save(或yarn add express),会自动添加到package.jsondependencies
    • 开发依赖(如webpack):npm install webpack --save-dev(或yarn add webpack --dev),添加到devDependencies
  • 锁定版本
    npm会自动生成package-lock.json,yarn生成yarn.lock务必将这两个文件提交到版本控制(如Git),确保团队成员或部署环境安装相同版本的依赖。
  • 更新依赖
    • npm:npm update(更新package.json中的版本号并安装);
    • yarn:yarn upgrade(同理)。
  • 删除依赖
    • npm:npm uninstall package-name
    • yarn:yarn remove package-name

3. 进程管理:使用PM2保持应用在线

Node.js应用默认无守护进程,需通过PM2(进程管理器)实现后台运行、自动重启、负载均衡等功能。

  • 全局安装PM2
    sudo npm install pm2 -g
    
  • 启动应用
    进入项目目录,运行pm2 start app.js --name "my-app"app.js为主入口文件,my-app为自定义应用名)。
  • 常用命令
    • pm2 list:查看所有管理的应用;
    • pm2 logs:查看应用日志;
    • pm2 stop my-app:停止应用;
    • pm2 restart my-app:重启应用;
    • pm2 delete my-app:删除应用。
  • 设置开机自启动
    运行pm2 startup,根据提示执行生成的命令(如sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u youruser --hp /home/youruser),确保服务器重启后应用自动恢复。

4. 版本控制:Git管理代码变更

版本控制是团队协作与项目迭代的基础,推荐使用Git跟踪代码变更。

  • 初始化Git仓库
    在项目根目录运行git init,生成.git目录。
  • 提交代码
    git add .  # 添加所有文件到暂存区
    git commit -m "Initial commit"  # 提交到本地仓库
    
  • 远程仓库(如GitHub/Gitee)
    运行git remote add origin <repository-url>添加远程仓库,再通过git push -u origin master推送代码。
  • 分支策略
    • 主分支(master/main):存储稳定代码,仅接受合并请求;
    • 开发分支(dev):集成开发中的功能;
    • 特性分支(feature/xxx):开发新功能,完成后合并到dev

5. 配置优化:Nginx反向代理与防火墙

为了让Node.js应用对外提供服务,需配置Nginx反向代理(处理HTTP请求、SSL卸载)和防火墙(开放端口)。

  • 安装Nginx
    sudo yum install -y nginx
    
  • 配置反向代理
    编辑Nginx配置文件(/etc/nginx/nginx.conf),在server块中添加:
    location / {
        proxy_pass http://localhost:3000;  # 转发到Node.js应用的端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
    
    重启Nginx:sudo systemctl restart nginx
  • 配置防火墙
    若使用firewalld,运行以下命令开放端口(如3000):
    sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
    sudo firewall-cmd --reload
    

6. 部署流程总结

  1. 安装Node.js(NVM/NodeSource);
  2. 初始化项目(npm init)并安装依赖;
  3. 编写代码并提交Git;
  4. 部署到服务器(Git克隆/FTP上传);
  5. 安装依赖(npm install)并启动应用(pm2 start);
  6. 配置Nginx反向代理与防火墙;
  7. 设置PM2开机自启动。

通过以上步骤,可实现CentOS下Node.js项目的高效管理,确保项目稳定、可维护。

0