溫馨提示×

Node.js在Debian上如何實現自動化部署

小樊
55
2025-03-17 05:17:11
欄目: 編程語言

在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 項目的自動化部署。選擇哪種方法取決于你的具體需求和項目復雜度。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女