Node.js在Debian上如何实现自动化部署

411
2025/3/17 6:32:25
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Debian上实现Node.js项目的自动化部署,可以通过多种方式实现,以下是其中两种常见的方法:

使用 node-ssh 库实现自动化部署

node-ssh 是一个用于通过 SSH 协议远程执行命令、传输文件的 Node.js 库。以下是一个基本的示例,展示如何使用 node-ssh 连接到远程服务器并上传本地目录到服务器。

安装 node-ssh

首先,你需要安装 node-ssh 库。如果你使用的是 TypeScript,还需要安装相应的类型文件。

pnpm add node-ssh @types/node-ssh

示例代码

import { NodeSSH } from "node-ssh";
import { deployConfig } from "./config.js";
import path from "path";

async function deploy() {
  const ssh = new NodeSSH();
  await ssh.connect(deployConfig);
  const result = await ssh.putDirectory(path.resolve("./dist"), "dist");
  console.log(result);
  ssh.dispose();
}

deploy();

config.js 文件中,配置你的服务器信息:

export const deployConfig = {
  host: '服务器IP地址',
  username: '用户名',
  password: '服务器密码'
};

使用 pm2ecosystem.config.js 实现自动化部署

pm2 是一个流行的 Node.js 进程管理器,可以用于自动化部署和管理 Node.js 应用。以下是一个示例,展示如何使用 pm2ecosystem.config.js 文件实现自动化部署。

安装 pm2nvm

首先,安装 nvm(Node Version Manager)来管理 Node.js 版本,然后使用 nvm 安装 Node.js。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
nvm install v14
nvm use v14

安装 pm2

sudo npm install -g pm2

配置 ecosystem.config.js

创建一个 ecosystem.config.js 文件来配置你的应用:

module.exports = {
  apps: [
    {
      name: 'my-node-app',
      script: 'server.js',
      env: {
        NODE_ENV: 'production'
      }
    }
  ],
  deploy: {
    production: {
      user: 'ubuntu', // 注意:user 必须是你Ubuntu的用户名
      host: '服务器IP地址', // 注意:ip 必须正确
      ref: 'origin/master',
      repo: 'git@bitbucket.org:your-repo/your-app.git', // 注意:必须用 git@.. 开头,不要使用 https:// 开头的
      path: '/home/ubuntu/your-app' // 注意:部署路径
    }
  }
};

自动化部署脚本

你可以使用 pm2deploy 命令来实现自动化部署。例如,在本地开发环境中,你可以编写一个脚本来自动化这个过程:

#!/bin/bash

# 拉取最新代码
git pull origin master

# 安装依赖
npm install

# 使用 pm2 部署到服务器
pm2 deploy production setup
pm2 deploy production update

将这个脚本添加到你的 package.json 中,并设置相应的权限:

"scripts": {
  "deploy": "node deploy-script.js"
}

然后运行:

npm run deploy

这样,每次你运行 npm run deploy 时,pm2 就会自动拉取最新代码,安装依赖,并部署到服务器上。

通过以上两种方法,你可以在 Debian 上实现 Node.js 项目的自动化部署。选择哪种方法取决于你的具体需求和项目复杂度。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Debian FTPServer与其他FTP服务器比较