vue之一键部署的shell脚本和它的点.bat文件、海螺AI、ChatGPT

MENU

  • 前言
  • vite.config.ts的配置
  • deploy文件夹的其他内容
  • remote.sh
  • pwd.txt
  • deploy.bat


前言

1、在src同级新建deploy.bat文件;
2、在src同级新建deploy文件夹,文件夹中新建pwd.txtremote.sh文件;
3、配置好后,直接双击deploy.bat文件即可启动打包和上传部署。


vite.config.ts的配置

import { UserConfig, ConfigEnv, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import path from 'path';
import { createHtmlPlugin } from 'vite-plugin-html';

export default ({ mode }: ConfigEnv): UserConfig => {
    // 获取.env环境配置文件
    const env = loadEnv(mode, process.cwd());

    return {
        build: {
            outDir: 'wdd-admin'
        },
        server: {
            host: '0.0.0.0',
            port: 8080,
            // 运行自动打开浏览器
            open: true,
            proxy: {
                '/api': {
                    target: env.VITE_API_URL,
                    changeOrigin: true
                }
            }
        },
        plugins: [
            vue(),
            createHtmlPlugin({
                inject: {
                    data: {
                        VITE_APP_SYSTEM_NAME: env.VITE_APP_SYSTEM_NAME
                    }
                }
            }),
            createSvgIconsPlugin({
                // 指定需要缓存的图标文件夹
                iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
                // 指定symbolId格式
                symbolId: 'icon-[dir]-[name]'
            })
        ],
        resolve: {
            // Vite路径别名配置
            alias: {
                '@': path.resolve('./src')
            }
        }
    };
};

deploy文件夹的其他内容

deploy


PLINK.EXEPSCP.EXE文件是脚本自带的插件,需要下载。


remote.sh

cd /aly/local/web
rm -rf admin.old
mv admin admin.old
tar -xf deploy-admin.tar
chmod -R 755 admin
rm -f deploy-admin.tar

pwd.txt

服务器密码。


deploy.bat

代码

@ECHO OFF

SET host=186.28.68.8
SET port=22
SET user=root

@REM 判断密码文件是否存在
IF NOT EXIST deploy/pwd.txt (
    ECHO 提示:请在deploy目录下新建pwd.txt,并将密码存入该文件中
    EXIT
)

@REM 工作目录设置为脚本所在目录
CD /d %~dp0

@REM 打包上传项目文件
CALL npm run build-hw
tar -cf deploy/deploy-admin.tar wdd-admin
CD deploy
ECHO 上传文件中...
PSCP -P %port% -pwfile pwd.txt deploy-admin.tar %user%@%host%:/usr/local/wdd/web
DEL deploy-admin.tar

@REM 解压项目文件
ECHO 解压文件中...
PLINK -ssh -batch -P %port% -pwfile pwd.txt %user%@%host% -m remote.sh

ECHO 项目部署完成
ECHO https://186.28.68.8:6008/

start https://186.28.68.8:6008/

解析
ChatGPT

这段批处理脚本(Batch script)用于自动化项目的部署,主要功能是上传和解压项目文件。


@ECHO OFF

这一行关闭命令行回显,即在执行命令时不会显示具体命令内容,保持界面的整洁。


SET host=186.28.68.8
SET port=22
SET user=root

这三行设置了一些变量,host表示服务器地址,port表示端口号,user表示用户名。


@REM 判断密码文件是否存在
IF NOT EXIST deploy/pwd.txt (
		ECHO 提示:请在deploy目录下新建pwd.txt,并将密码存入该文件中
		EXIT
)

这段代码是一个判断语句,用于检查密码文件deploy/pwd.txt是否存在。如果不存在,则提示用户创建该文件并将密码存入其中,然后退出脚本。


@REM 工作目录设置为脚本所在目录
CD /d %~dp0

这行命令将工作目录设置为脚本所在目录,以确保脚本中的路径都相对于脚本文件本身。


@REM 打包上传项目文件
CALL npm run build-hw
tar -cf deploy/deploy-admin.tar wdd-admin
CD deploy
ECHO 上传文件中...
PSCP -P %port% -pwfile pwd.txt deploy-admin.tar %user%@%host%:/usr/local/wdd/web
DEL deploy-admin.tar

这一段代码用于打包和上传项目文件:
1、CALL npm run build-hw:执行构建命令,生成项目的构建文件。
2、tar -cf deploy/deploy-admin.tar wdd-admin:将wdd-admin目录打包为deploy-admin.tar文件。
3、CD deploy:切换到deploy目录。
4、ECHO 上传文件中…:显示上传文件提示。
5、PSCP -P %port% -pwfile pwd.txt deploy-admin.tar %user%@%host%:/usr/local/wdd/web:使用PSCP命令将打包文件上传到服务器指定目录。
6、DEL deploy-admin.tar:删除本地的打包文件。


@REM 解压项目文件
ECHO 解压文件中...
PLINK -ssh -batch -P %port% -pwfile pwd.txt %user%@%host% -m remote.sh

这一段代码用于在服务器上解压项目文件:
1、ECHO 解压文件中…:显示解压文件提示。
2、PLINK -ssh -batch -P %port% -pwfile pwd.txt %user%@%host% -m remote.sh:使用PLINK命令连接到服务器并执行远程脚本remote.sh,该脚本通常用于在服务器上解压和配置项目文件。


ECHO 项目部署完成
ECHO https://186.28.68.8:6008/

这两行显示项目部署完成的提示和项目访问地址。


start https://186.28.68.8:6008/

这一行在默认浏览器中打开项目的访问地址。


总结
该脚本通过一系列命令实现了从构建项目、打包文件、上传文件到服务器以及在服务器上解压文件的自动化部署流程。需要确保以下几点:
1、deploy/pwd.txt 文件存在,并且包含正确的密码。
2、本地环境安装了npm、PSCP和PLINK工具。
3、服务器端的 remote.sh 脚本存在并且配置正确。


海螺AI

这段代码是一个Windows批处理脚本,用于自动化部署一个Web项目到远程服务器。


@ECHO OFF

这行命令关闭命令回显,即执行命令时不会在命令行窗口显示这些命令本身。


SET host=186.28.68.8

设置变量host为远程服务器的IP地址186.28.68.8。


SET port=22

设置变量port为远程服务器的SSH端口22。


SET user=root

设置变量user为远程服务器的用户名root。


@REM 判断密码文件是否存在
IF NOT EXIST deploy/pwd.txt (
		ECHO 提示:请在deploy目录下新建pwd.txt,并将密码存入该文件中
		EXIT
)

检查deploy目录下是否存在pwd.txt文件,如果不存在,则提示用户创建该文件并输入密码,然后退出脚本。


@REM 工作目录设置为脚本所在目录
CD /d %~dp0

改变当前目录到脚本所在的目录。


@REM 打包上传项目文件
CALL npm run build-hw

调用npm执行build-hw脚本,这通常用于构建项目。


tar -cf deploy/deploy-admin.tar wdd-admin

使用tar命令创建一个名为deploy-admin.tar的压缩包,包含wdd-admin目录。


CD deploy

切换当前目录到deploy。


ECHO 上传文件中...

显示提示信息,告知用户接下来将上传文件。


PSCP -P %port% -pwfile pwd.txt deploy-admin.tar %user%@%host%:/usr/local/wdd/web

使用PSCP(PuTTY Secure Copy)命令将deploy-admin.tar文件上传到远程服务器的/usr/local/wdd/web目录。-P指定端口,-pwfile指定包含密码的文件,%user%@%host%指定了远程服务器的用户名和IP地址。


DEL deploy-admin.tar

删除本地的deploy-admin.tar文件。

@REM 解压项目文件
ECHO 解压文件中...

显示提示信息,告知用户接下来将解压文件。


PLINK -ssh -batch -P %port% -pwfile pwd.txt %user%@%host% -m remote.sh

使用PLINK(PuTTY Link)命令通过SSH连接到远程服务器,并执行remote.sh脚本。-ssh指定使用SSH协议,-batch表示非交互模式,-m指定要执行的脚本文件。


ECHO 项目部署完成

显示提示信息,告知用户项目部署完成。


ECHO https://186.28.68.8:6008/

显示提示信息,告知用户可以通过这个URL访问部署的项目。


start https://186.28.68.8:6008/

在默认的Web浏览器中打开上述URL。


这个脚本的目的是自动化地将本地的Web项目打包、上传到远程服务器,并执行部署脚本,最后提供访问部署项目的URL。注意,这个脚本依赖于PuTTY工具集中的PSCP和PLINK命令,这些命令通常用于Windows系统中进行SSH和SCP操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/713362.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java_FileIO流

存储数据的方案 有些数据想长久保存起来,咋整? 文件时非常重要的存储方式,在计算机硬盘中。 即便断电,或者程序终止了,存储在硬盘文件中的数据也不会丢失。 File File 是Java.io.包下的类,File类对象&…

C++ string字符串的使用和简单模拟实现

目录 前言 1. string简介 2. string的使用和简单模拟实现 2.1 string类的定义 2.2 string(),~string()和c_str() 2.2 size,重载符号[ ],begin和end函数 2.3 push_back,reserve,append,运算符重载 2.4 insert和…

DDPM公式推导(三)

2 Background 扩散模型【53】是一种以 p θ ( x 0 ) : ∫ p θ ( x 0 : T ) d x 1 : T p_\theta\left(\mathbf{x}_0\right):\int p_\theta\left(\mathbf{x}_{0: T}\right) d \mathbf{x}_{1: T} pθ​(x0​):∫pθ​(x0:T​)dx1:T​ 形式的潜在变量模型,其中 x 1…

机器真的能思考、学习和智能地行动吗?

In this post, were going to define what machine learning is and how computers think and learn. Were also going to look at some history relevant to the development of the intelligent machine. 在这篇文章中,我们将定义机器学习是什么,以及…

BerkeleyDB练习

代码; #include <db.h> #include <stdio.h>int main() {DB *dbp;db_create(&dbp, NULL, 0);printf("Berkeley DB version: %s\n", db_version(NULL, NULL, NULL));dbp->close(dbp, 0);return 0; } 编译运行

Android studio在Ubuntu桌面上 创建桌面图标,以及导航栏图标

Android studio在Ubuntu桌面上 创建桌面图标&#xff0c;以及导航栏图标 1. 下载Android studio for Lunux 免安装版本之后&#xff0c;解压 2. 通过控制台运行 ~/Documents/android-studio-2024.1.1.2-linux/android-studio/bin$ ./studio.sh 3. 选择菜单&#xff0c;Tools…

1586. 扫地机器人

问题描述 Mike同学在为扫地机器人设计一个在矩形区域中行走的算法,Mike是这样设计的:先把机器人放在出发点 (1,1)(1,1) 点上,机器人在每个点上都会沿用如下的规则来判断下一个该去的点是哪里。规则:优先向右,如果向右不能走(比如:右侧出了矩形或者右侧扫过了)则尝试向…

基于51单片机的烟雾报警器设计-ADC0809

一.硬件方案 火灾报警器采用51单片机为核心控制器&#xff0c;利用气体传感器MQ-2、ADC0809模数转换器、DS18B20温度传感器等实现基本功能。通过这些传感器和芯片&#xff0c;当环境中可燃气体浓度或温度等发生变化时系统会发出相应的灯光报警信号和声音报警信号&#xff0c;以…

28.启动与暂停程序

上一个内容&#xff1a;27.设计注入功能界面 以它 27.设计注入功能界面 的代码为基础进行修改 点击添加游戏按钮之后就把游戏启动了 CWndINJ.cpp文件中修改&#xff1a; void CWndINJ::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码/*ExeLst.InsertItem(0, L…

Vue I18n国际化插件

Vue I18n国际化插件 安装目录结构及文件内容./locales/lang/zh.js./locales/lang/en.js./locales/index.js main.js引入页面具体使用及语言切换&#xff08;Vue3&#xff09;刷新保存原语言&#xff0c;App.vue添加路由守卫注意点 中文文档&#xff1a; https://kazupon.githu…

69. UE5 RPG 使用Gameplay Cue 实现技能表现效果

在上一章中&#xff0c;我们实现了敌人的攻击技能的特效和音效。如果我们在多人模式下打开&#xff0c;发现&#xff0c;其它客户端看不到对应的效果。 造成这种问题的原因是因为敌人的技能是运行在服务器端的&#xff0c;它只复制到拥有它的客户端&#xff0c;而敌人的效果对于…

英伟达与斯坦福携手,打造未来全息XR眼镜:头带时代的终结

在XR(扩展现实)技术的演进过程中,一个显著的挑战在于如何平衡设备的便携性与视觉体验。传统的XR设备由于需要厚重的头带固定光学器件和显示器,不仅增加了体积,还为用户带来了社交上的不便。然而,随着英伟达与斯坦福大学戈登韦茨斯坦教授领导的研究团队的合作,这一难题似…

meilisearch的分页

Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重量级&#xff0c;适合大数据量。 MeiliSearch 设计目标针对数据在 500GB 左右的搜索需求&#xff0c;极快&#xff0c;单文件&#xff0c;超轻量。 所以&#xff0c;对于中小型项目来说…

探地雷达正演模拟,基于时域有限差分方法,四

突然发现第三章后半部分已经讲了使用接收记录成像的问题&#xff0c;所以这一章只讲解简单的数据分析。 &#xff08;均以宽角法数据为例子&#xff0c;剖面法数据处理方式都是相同的&#xff09;假设&#xff0c;我们现在已经获得了一个GPR记录&#xff0c;可以是常用的.sgy格…

DAY03 HTML

文章目录 一 表格1. 表格的语法2. 表格的可选标记3. 不规则的单元格&#xff08;合并单元格&#xff09;4. 表格的属性5. 表格的大小 二 列表1. 有序列表2. 无序列表3. 属性4. 列表的嵌套5. 定义列表【了解】 三 表单(重点)1. 表单的语法2. 表单的控件分类3. input元素4. selec…

为什么说Python 是胶水语言?

​ "Python 是胶水语言"这一说法是指它很擅长将不同的程序或代码库连接在一起&#xff0c;能够让来自不同编程语言或框架的组件无缝协作。Python 具有丰富的库和简单的语法&#xff0c;使得它可以轻松调用其他语言编写的程序或使用不同技术栈的模块。 ​ 以下是几个…

如何区分人工智能生成的图像与真实照片(下)

4 功能上的不合理性 AI 生成的图像往往会因为缺乏对现实世界物体结构和相互作用的了解&#xff0c;而产生各种功能不合理之处。这些不合理之处主要表现在以下几个方面&#xff1a; 4.1 构图不合理 物体关系不合逻辑: AI 生成的图像中&#xff0c;物体和人物之间的关系可能不符…

哈希表、递归在二叉树中的应用-1372. 二叉树中的最长交错路径

题目链接及描述 1372. 二叉树中的最长交错路径 - 力扣&#xff08;LeetCode&#xff09; 题目分析 题目所述&#xff0c;计算在二叉树中交替遍历的最大深度【左->右->左】【右->左->右】&#xff0c;例如对于从当前根节点root出发&#xff0c;则此时遍历方向有两个…

持续集成jenkins+gitee

首先要完成gitee部署&#xff0c;详见自动化测试git的使用-CSDN博客 接下来讲如何从git上自动拉取代码&#xff0c;实现jenkins无人值守&#xff0c;定时执行测试&#xff0c;生成测试报告。 需要这三个安装包 由于目前的jenkins需要至少java11到java17的版本&#xff0c;所以…

JavaScript——初识:JavaScript的组成、输入和输出语句... | JavaScript基础:变量,数据类型转换

目录 初识JavaScript JavaScript的组成 输入和输出语句 ECMAScript 6保留关键字 变量的命名规范 注意事项 JavaScript基础 变量的数据类型 数据类型分类 数据类型转换 转换为字符串型 转换为数字型 转换为布尔型 例题 初识JavaScript JavaScript的组成 Java…