Das Frontend wird mit dem scp-Befehl auf dem Server bereitgestellt

Da es keine automatische Bereitstellungsumgebung gibt, muss der Code jedes Mal nach dem Packen entweder an das Backend oder an den Betrieb und die Wartung gesendet werden, was ziemlich mühsam ist. Also dachte ich über den Befehlseinsatz nach. Es ist auch sehr einfach, einfach scp von nodejs zu verwenden
Nehmen Sie das von vue-cli erstellte vue2-Projekt als Beispiel

installiere scp

npm install scp2 --save-dev

Konfigurationsbefehle

Konfigurieren Sie dann den Befehl scp in der Option scripts in package.json

  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "scp": "npm run build && node scp2.js"
  },

Erstellen Sie die ausführbare Datei scp2.js

Erstellen Sie scp2.js im Projektstammverzeichnis
Der Code lautet wie folgt

const scp = require('scp2');
const ora = require('ora');
const chalk = require('chalk'); //设置命令颜色的
const spinner = ora(chalk.blue('正在部署到服务器...'));  //显示加载

spinner.start();
    scp.scp('./dist/',{
        host:'127.0.0.1', // 服务器的地址
        port: 22,            // 服务器端口, 一般为 22
        username: 'root',       // 用户名
        password: '123456,     // 密码
        path: '/test/ui/dist/' //服务器存放文件路径
    }, err =>{
        if (!err) {
            console.log(chalk.green(`部署完成!`))
        } else {
            console.log(chalk.red(部署失败!`))
        }
  spinner.stop();
    })

OK, fertig.

Optimierung der Bereitstellung mehrerer Server

Was ist, wenn Sie mehrere Server gleichzeitig bereitstellen möchten? Eigentlich ist es einfach, aber die Voraussetzung ist, dass der API-Anforderungsdomänenname und die Umgebungskonfiguration nicht geändert werden müssen. Dann rufen Sie einfach die for-Schleife auf. Beispiel:

const scp = require('scp2');
const ora = require('ora');
const chalk = require('chalk');
const defaultPort='22'
const defaultUsername='root'
const defaultPassword='123456'
const defaultPath='/test/ui/dist/'
const delopyIps=[{host:'127.0.0.1',isEnd:false},{host:'127.0.0.2',isEnd:false}]
const spinner = ora(chalk.blue('正在部署到服务器...'));

spinner.start();
for(let i=0;i<delopyIps.length;i++){
    let {host,port,username,password,path}=delopyIps[i]
    scp.scp('./dist/',{
        host, // 服务器的IP地址
        port: port || defaultPort,            // 服务器端口, 一般为 22
        username: username || defaultUsername,       // 用户名
        password: password || defaultPassword,     // 密码
        path: path || defaultPath
    }, err =>{
        delopyIps[i].isEnd=true
        if (!err) {
            console.log(chalk.green(`${host}部署完成!`))
        } else {
            console.log(chalk.red(`${host}部署失败!`))
        }
        let hasNotEnd=delopyIps.find(item=>!item.isEnd)
        if(!hasNotEnd){
            spinner.stop();
            for(let i=0;i<delopyIps.length;i++){
                delopyIps[i].isEnd=false
            }
        }
    })
}

Verwenden Sie npm und führen Sie scp aus

Guess you like

Origin blog.csdn.net/baidu_33164415/article/details/135027534