首页 > 编程语言 >node远程服务器覆盖发布

node远程服务器覆盖发布

时间:2024-06-12 17:21:44浏览次数:9  
标签:node const server host env path 服务器 远程

// 安装对应依赖
// npm i [email protected] [email protected]
const path = require("path");
// 引入scp2库
const scpClient = require("scp2");
// node模块 - node.js 命令行环境的 loading效果和显示各种状态的图标
const ora = require("ora");
// deploy.js
const serverConfig = {
  dev: {
    host: "dev_server_ip",
  },
  prv: {
    host: "127.0.0.1",
    port: "22",
    username: "root",
    password: "123456",
    path: "/www/deploy/path",
  },
  prd: {
    host: "prd_server_ip",
  },
};

const env = process.argv.pop();

if (!serverConfig[env]) {
  console.error(`Unsupported environment: ${env}`);
  process.exit(1);
} else {
  // 获取当前环境对应的提示名称,使用模糊匹配
  const currentEnvName = getEnvDescription(env);
  const server = serverConfig[env];
  console.log(server)
  console.log("当前发布环境:", currentEnvName);
  // node 终端提示语,process.env:当前进程环境
  const spinner = ora(`正在发布到${currentEnvName}服务器...`);
  // loading
  spinner.start();
  // 执行scp2库,上传文件
  // 第一个参数:要上传到服务器的文件
  // 第二个参数:服务器配置
  // 第三个参数:上传回调函数
  scpClient.scp(
    path.resolve(__dirname, "dist"),
    {
      host: server.host,
      port: server.port,
      username: server.username,
      password: server.password,
      path: server.path,
    },
    function (err) {
      spinner.stop();
      if (err) {
        console.log("发布失败.\n");
        throw err;
      } else {
        console.log(`Success! 成功发布到${currentEnvName}服务器! \n`);
      }
    }
  );
}

// 辅助函数:实现模糊匹配获取环境描述
function getEnvDescription(envKey) {
  const serverEnvMap = {
    dev: "测试",
    prv: "预发",
    prd: "正式",
  };

  for (const key in serverEnvMap) {
    if (key.toLowerCase().includes(envKey.toLowerCase())) {
      return serverEnvMap[key];
    }
  }
  // 如果没有找到匹配项,返回默认值或处理错误
  return "未知环境";
}

标签:node,const,server,host,env,path,服务器,远程
From: https://www.cnblogs.com/brujie/p/18244359

相关文章

  • nodejs下载依赖npm install报错
    npminstall报错,解决记录_npmwarnusing--forcerecommendedprotectionsdis-CSDN博客先切换镜像源,然后清理缓存,在使用npm命令注意前面可能爆粗哦的原因大概率是权限问题,所以采用这种解决方式加上面合体:解决:安装vueCLI不成功时,执行npmcleancache-force清除缓存命令无效_n......
  • 代理服务器如何为企业服务?(Socks5代理)
    在数字化时代的浪潮中,企业对于网络的需求日益增加,而代理服务器作为网络架构中的重要组成部分,其在企业服务中扮演着不可或缺的角色。本文将探讨代理服务器如何以其独特的功能和优势,为企业带来实际效益。一、提升网络安全防护代理服务器是企业网络安全的第一道防线。通过代理......
  • node使用http-proxy-middleware做代理,解决跨域问题
    constexpress=require('express')consthistory=require('connect-history-api-fallback')const{createProxyMiddleware}=require('http-proxy-middleware')letapp=express()app.use(history())////匹配api开头的请求,实际转发的请求保a......
  • 代理服务器:网络世界的“隐形守护者”(Socks5代理)
    在网络世界中,有一个“隐形守护者”默默地在为我们服务,它就是我们今天的主角——代理服务器。它像是一个中转站,为我们处理网络请求,确保我们的网络活动更加顺畅、安全。接下来,我们将深入探讨代理服务器的奥秘。(高质量ip资源:3000W纯净资源,支持IP池定制、IP时效定制和并发量定制)......
  • 七牛云上传文件Node
    constqiniu=require('qiniu');constfs=require('fs');constpath=require('path');//七牛云配置constaccessKey='accessKey';constsecretKey='secretKey-fNH9FejVul';constbucket='bucket';......
  • 备忘:HP Gen8服务器创建Raid
    HPGen8服务器创建Raid(therearenophysicaldisksattached) 原文地址:https://blog.51cto.com/tianhunyongheng/1606948   HP最新的X86服务器是Gen8系列,这个系列使用了ACU工具来创建Raid,这是图形化界面,可以说是更友好了。      本来通常情况下如果是买了一......
  • 联想服务器(XCC)初始化详细操作【保姆级】
    1.1服务器部署1.1.1设置远程管理IP远程管理卡默认配置地址:192.168.70.125用户:USERID密码:PASSW0RD注意,远程管理卡默认开启了DHCP,如果找到了DHCP,就会从DHCP获取地址,没有找到才会用默认的地址192.168.70.125。在用户登录界面输入登录的账户及密码后,点击登录进入xC......
  • 京准电钟|基于纳秒级的GPS北斗卫星授时服务器
    京准电钟|基于纳秒级的GPS北斗卫星授时服务器京准电钟|基于纳秒级的GPS北斗卫星授时服务器京准电子科技官微——ahjzsz你有没有思考过这样一个问题:火车站内,熙熙攘攘,旅客排队进站、列车停靠发车,一切井然有序。一旦有个别时间出现错误,便会造成运行混乱——这些时钟如何能做到精准统......
  • C# 获取当前服务器域名
    C#获取当前服务器域名"http://"是协议名"www.test.com"是域名"aaa"是站点名"bbb.aspx"是页面名(文件名)"id=5&name=kelli"是参数//获取完整url(协议名+域名+站点名+文件名+参数)stringurl=Request.Url.ToString();url="http://www.test.com/aaa/b......
  • ssh的远程连接(Linux篇)
    这里用到的虚拟机时centos7记得提前先把网络连接好,这里选择的是桥接模式1.启动ssh服务#在centos中启动sshd服务sudosystemctlstartsshd2.在windows的cmd命令界面内输入以下内容#sshcentos中的登录用户名@centos中的IP地址[email protected]然后cmd中会出现以......