首页 > 其他分享 >前端使用scp命令部署到服务器

前端使用scp命令部署到服务器

时间:2022-11-22 10:25:49浏览次数:42  
标签:spinner const 部署 前端 chalk 服务器 scp

由于没有弄自动部署环境,每次打包后,不是要把代码发给后端就是发给运维,比较麻烦。所以想到了命令部署。弄起来也很简单,使用nodejs 的scp即可
以 vue-cli创建的vue2项目为例

安装scp

npm install scp2 --save-dev

配置命令

然后在 package.json 里面的scripts选项配置命令 scp

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

创建执行文件scp2.js

在项目根目录下创建scp2.js
代码如下

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,搞定。

多服务器部署优化

如果想一次部署多个服务器呢?其实也简单,但前提是不需要改api请求域名及环境配置。那就for循环调用好了。示例:

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
            }
        }
    })
}

使用 npm run scp

标签:spinner,const,部署,前端,chalk,服务器,scp
From: https://www.cnblogs.com/Sultan-ST/p/16914244.html

相关文章

  • Web 前端之 Webpack5 教程
    Webpack是一个静态资源打包工具。它会以一个或多个文件作为打包的入口,将我们整个项目所有文件编译组合成一个或多个文件输出出去。输出的文件就是编译好的文件,就可以在浏......
  • 企业微信登录,前端做跳转
     <template><divclass="register-page-wrapper"><!--<divclass="attach"><divclass="attachTitle">附件</div></div>-->......
  • 前端 堆、栈 概念和区别
    1.概念栈:先进后出,由操作系统自动分配释放,存放函数的参数值、局部变量值等。其操作方式类似于数据结构中的栈;是一种运算受限的线性表;堆:先进先出,动态分配的空间一......
  • 拨号云服务器如何搭建
    拨号vps的实现方式?拨号vps的搭建架构方式:我自己想象了几种方式:1.电信内部有人,直接在电信idc机房托管机器,打通idc机房和拨号服务器所在机房,然后设置adsl帐号可以多拨的次数;2......
  • adsl动态拨号服务器有什么不同?
    adsl动态拨号服务器是什么?是属于VPS的其中一种类型吗?服务器那么多分类,大家确实很容易搞混,下面由掌柜给大家介绍下adsl动态拨号服务器。adsl拨号服务器又叫动态拨号vps、动......
  • 推荐一款高效率前端开发神器,功能太强大了 !
    当前端收到一张设计稿的时候,他们需要考虑非常多的问题。而第一个摆在面前的问题就是- ​​切图​​。作为连接设计师和前端的重要“纽带”,如果切图不准确,很容易导致最终的......
  • 三丰云为学生提供永久免费虚拟主机和云服务器
    首先感谢三丰云提供的免费虚拟主机,免费云服务器,三丰云提供了非常好用的虚拟云空间,和虚拟云服务器(windows/linux),无论是建站还是学习都是很不错了,目前就是应用三丰云提供的免......
  • K8S Pod Sidecar 应用场景之一-加入 NGINX Sidecar 做反代和 web 服务器
    KubernetesPodSidecar简介Sidecar是一个独立的容器,与Kubernetespod中的应用容器一起运行,是一种辅助性的应用。Sidecar的常见辅助性功能有这么几种:服务网格(s......
  • windows服务器Nginx一键安装部署
    原文链接:https://www.cnblogs.com/xiaoXuZhi/p/nginx.html作为一名专业搬砖工,Nginx是我们绕不开的砖头,最近连续部署了几个服务器,Ctrl a+Ctrlv在飞来飞去,总是会遇到......
  • 前端工程化 - 剖析npm的包管理机制
    导读现如今,前端开发的同学已经离不开 npm 这个包管理工具,其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区,理解其内部机制非常有利于加深我们对模块开发的理解、......