linux shell 自动化部署 npm vue 项目
此 shell 是提供给前端登录服务器自动化部署 vue 项目的
用此命令,工具化部署项目,可以杜绝前端自己部署项目时,对服务器违规操作
如有其它问题,可在下方留言!
#!/bin/sh
# url:https://github.com/jefferyjob/tool
#====================================================================
#=== 项目路径定义 ===================================================
#=== 请在此定义您的项目路径 =========================================
#====================================================================
dir_array=(
"/data/Web/make_client/web_make_client"
"/data/Web/make_client/web_make_client_back"
"/data/Web/WebUPinVue"
)
#===================================================================
#=== 是否开启确认 ==================================================
#=== true: 开启、false: 关闭 ======================================
#===================================================================
verify=true
#====================================================================
#=== 命令执行参数 ===================================================
#====================================================================
clear
#echo "+------------------------------------------------------+:
#echo "| Npm project automation deployment |"
#echo "+------------------------------------------------------+"
echo -e "\033[33m请选择要执行的vue项目\033[0m"
for i in ${!dir_array[@]}
do
echo -e "\033[33m$i: ${dir_array[$i]} \033[0m"
done
# 提示输入
read -p "请输入项目序号: " num
if [ ! -n "$num" ];then
echo -e "\033[31mError: 未选择项目序号\033[0m"
exit
elif echo $num | grep -q '[^0-9]';then
echo -e "\033[31mError: 请输入数字格式\033[0m"
exit
elif [[ $num -lt 0 ]]||[[ $num -gt ${#dir_array[@]} ]];then
echo -e "\033[31mError: 错误的项目序号\033[0m"
exit
elif [ ! -x "${dir_array[$num]}" ]; then
echo -e "\033[31mError: 该项目目录不存在或没有可执行权限\033[0m"
exit
fi
# 项目路径输出
echo -e "\033[36mvue path: ${dir_array[$num]}\033[0m"
echo -e '\n'
# npm 命令定义
command_array=("cnpm install" "cnpm run build" "cnpm install && cnpm run build" "npm install" "npm run build" "npm install && npm run build")
echo -e "\033[33m请选择要执行的npm命令\033[0m"
for i in ${!command_array[@]}
do
echo -e "\033[33m$i: ${command_array[$i]} \033[0m"
done
# 提示输入
read -p "请输入命令序号: " number
if [ ! -n "$number" ];then
echo -e "\033[31mError: 未选择命令序号\033[0m"
exit
elif echo $number | grep -q '[^0-9]';then
echo -e "\033[31mError: 请输入数字格式\033[0m"
exit
elif [[ $number -lt 0 ]]||[[ $number -gt ${#command_array[@]} ]];then
echo -e "\033[31mError: 错误的命令序号\033[0m"
exit
fi
# 项目路径输出
echo -e "\033[36mvue command: ${command_array[$number]}\033[0m"
echo -e '\n'
# 输出执行命令
echo -e "\033[44;37mcommand: ${dir_array[$num]} && ${command_array[$number]}\033[0m"
# 提示输入
if [[ $verify == true ]] ; then
read -p "您是否要执行此命令(y/n): " command
if [ "$command" != "y" ]&&[ "$command" != "n" ];then
echo -e "\033[31mError: 输入错误\033[0m"
exit
elif [[ $command == 'n' ]];then
echo -e "\033[31m程序已终止... ...end\033[0m"
exit
fi
fi
# 命令执行
# 命令执行
command=${command_array[$number]}
OLD_IFS="$IFS"
IFS="&&"
command_arr=($command)
IFS="$OLD_IFS"
for i in ${!command_arr[@]}
do
cd ${dir_array[$num]} && ${command_arr[$i]}
done
GitHub Url:https://github.com/jefferyjob/tool
Blog:https://blog.cvrrr.com/article/14
linux shell 自动化部署 npm vue 项目的更多相关文章
- 从零实现Linux一键自动化部署.netCore+Vue+Nginx项目到Docker中
环境搭建 1.安装Linux,这里我用的阿里云服务器,CentOS7版本 2.进入Linux,安装Docker,执行以下命令 sudo yum update #更新一下yum包 sudo yum in ...
- nginx + uwsgi 部署 Django+Vue项目
nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...
- Linux Shell 自动化之让文本飞
Linux Shell 自动化之让文本飞 一.前言: 作者之前在一家 IDC 从事运维兼职工作,后来因某些原因辞职开始 Python 爬虫数据分析.因为这些经历以及后续时间积累下的经验,发现好像自 ...
- Linux CentOS下部署Java Web项目
本文讲解如何在Linux CentOS下部署Java Web项目的步骤. 一.环境准备: (1)Linux CentOS (2)apache-tomcat-9.0.10 (3)XShell 二.启动t ...
- Linux之自动化部署
No.1 自动化部署git项目 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 ...
- Linux云服务部署Spring boot项目
Linux云服务部署Spring boot项目 背景: 之前经过两个周的时间,做了一个简单的博客网站,网址:点击进入,在本地可以正常使用以后,想着部署到服务器上,给大家伙看个乐呵,于是有了这篇部署文章 ...
- Jenkins+SVN+Maven+shell 自动化部署实践
JAVA环境中利用Jenkins+svn+maven进行自动化部署实践 一. 前言2 1.介绍jenkins2 1.本地项目打包2 2.通过secureCRT工具,手动传输到服务器2 3.然后 ...
- 自动化工具构建vue项目
其实之前对vue的话也有过一段时间的学习,博客园也是写了5篇vue的学习笔记.但是一直是通过CDN的方式在html文件头部引入vue.js,然后实例化vue对象绑定Dom,写组件写方法.就算是在实际项 ...
- docker部署nginx+vue项目
1.vue项目打包 npm run build 会在项目生成dist文件夹,这个文件夹可以使用nginx或tomcat来发布服务 2.查找nginx基础镜像 可以通过以下网站找到符合自己的基础镜像,我 ...
- 【Linux】自动化部署可信任登录
Linux信任登录,免密码登录的脚本: 需要安装expect,可以yum也可以编译安装,编译后注意脚本中的expect路径. rsa.exp #!/usr/bin/expect ########### ...
随机推荐
- CF1272 C Yet Another Broken Keyboard 题解+代码比对
C. Yet Another Broken Keyboard time limit per test 2 seconds memory limit per test 256 megabytes inp ...
- Unity UI布局与适配
目录 Canvas(画布) Basic Layout(基础布局) 实例 1.画布(Canvas) 画布是所有UI元素的父物体,任何UI元素都存在于画布之上.画布上所有UI元素的绘制顺序是根据其在场景中 ...
- 如何优化if--else
1.现状代码 public interface IPay { void pay(); } package com.test.zyj.note.service.impl; import com.test ...
- python之自动化连连看脚本-第一关不动-小记
(如想转载,请联系博主或贴上本博地址) 仅供学习python之用,勿用做商业用途.运行环境为1920*1080屏幕,python3.7,win7,谷歌浏览器版本 75.0.3770.100. 参考ht ...
- 学习记录--C++作业3
1.类是一个模板吗? 是:类模板是一个抽象的类,代表类的一般特性,可以用类模板来创建类,所有的类都有共有的特性. 4.函数模板的实例化是什么? 模板函数,即函数 3.关于cin和cout说法正确的: ...
- React16下报错引发整个页面crash的解决方法
如果报错没有没有被catch,将会引起整个React组件树的unmounting 解决方法:在生命周期中增加componentDidCatch https://reactjs.org/blog/201 ...
- FPGA实现国密算法SM4
本文基于FPGA实现高速SM4加密与解密,提供开源Verilog RTL设计和可综合工程:https://github.com/cassuto/SM4-FPGA. 本文仅讨论实现细节,不涉及算法原理. ...
- Spring源码分析之getBean
一.前言 spring作为JAVAEE最核心的框架,是每一个java开发者所必须掌握的,非常重要,本篇从一个简单例子入手,由浅入深的分析spring创建bean的全过程,目标在于彻底搞懂spring原 ...
- PHP 文件和文件夹操作
文件夹操作 创建文件夹 mkdir(名称,权限,递归创建):创建文件 例如: #创建文件夹 mkdir('./aa') # 创建 aa 文件夹 mkdir('./aa/bb') # 在 aa 目录下创 ...
- 一次.net code中的placeholder导致的高cpu诊断
背景 最近一位朋友找到我,让我帮看他们的一个aspnet core service无端cpu高的问题.从描述上看,这个service之前没有出现过cpu高的情况,最近也没有改过实际的什么code.很奇 ...