此 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 项目的更多相关文章

  1. 从零实现Linux一键自动化部署.netCore+Vue+Nginx项目到Docker中

    环境搭建 1.安装Linux,这里我用的阿里云服务器,CentOS7版本 2.进入Linux,安装Docker,执行以下命令 sudo yum update #更新一下yum包 sudo yum in ...

  2. nginx + uwsgi 部署 Django+Vue项目

    nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...

  3. Linux Shell 自动化之让文本飞

    Linux Shell 自动化之让文本飞 一.前言: ​ 作者之前在一家 IDC 从事运维兼职工作,后来因某些原因辞职开始 Python 爬虫数据分析.因为这些经历以及后续时间积累下的经验,发现好像自 ...

  4. Linux CentOS下部署Java Web项目

    本文讲解如何在Linux CentOS下部署Java Web项目的步骤. 一.环境准备: (1)Linux CentOS (2)apache-tomcat-9.0.10 (3)XShell 二.启动t ...

  5. Linux之自动化部署

    No.1 自动化部署git项目 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一 ...

  6. Linux云服务部署Spring boot项目

    Linux云服务部署Spring boot项目 背景: 之前经过两个周的时间,做了一个简单的博客网站,网址:点击进入,在本地可以正常使用以后,想着部署到服务器上,给大家伙看个乐呵,于是有了这篇部署文章 ...

  7. Jenkins+SVN+Maven+shell 自动化部署实践

      JAVA环境中利用Jenkins+svn+maven进行自动化部署实践   一. 前言2 1.介绍jenkins2 1.本地项目打包2 2.通过secureCRT工具,手动传输到服务器2 3.然后 ...

  8. 自动化工具构建vue项目

    其实之前对vue的话也有过一段时间的学习,博客园也是写了5篇vue的学习笔记.但是一直是通过CDN的方式在html文件头部引入vue.js,然后实例化vue对象绑定Dom,写组件写方法.就算是在实际项 ...

  9. docker部署nginx+vue项目

    1.vue项目打包 npm run build 会在项目生成dist文件夹,这个文件夹可以使用nginx或tomcat来发布服务 2.查找nginx基础镜像 可以通过以下网站找到符合自己的基础镜像,我 ...

  10. 【Linux】自动化部署可信任登录

    Linux信任登录,免密码登录的脚本: 需要安装expect,可以yum也可以编译安装,编译后注意脚本中的expect路径. rsa.exp #!/usr/bin/expect ########### ...

随机推荐

  1. 导入ssm项目时,项目基本的配置文件

    一.ssm框架基本的配置文件 上面的这些配置文件对于比较简单的ssm项目其实大同小异,逻辑上是差不多的. 在config目录下 在lib下就是各种jar包 二.导入ssm项目后,本地环境配置和项目本身 ...

  2. linux学习之grep

    grep 可进行查找内容 如 cat logs/anyproxy.log | grep "2020080321000049" 还可以通过-v 反向过滤 如 tail -f  log ...

  3. Unity 转小游戏

    填写appid 和游戏资源位置 在导出的项目里可以修改游戏资源位置 两个目录 minigame 是小程序打开的目录 webgl 是要下载的的资源 下载一个http 服务器就有了 和JS交互 大部分js ...

  4. 如何让charles无论怎么请求都返回一个结果

    1. map Local         将匹配的url映射到本地文件.这个需要首先将url右键,save Response,将原有报文保存到本地,然后映射到该文件,修改该文件即可,直接自己写费事2. ...

  5. Blog作业01

    目录 前言 设计与分析 踩坑心得 改进建议 总结 前言 这三次作业的知识点覆盖的很全面,从最开始的int赋值变量,循环,到Boolean值,sort等一些函数,到后来的对象,类的创建和声明,gette ...

  6. Typora安装及MarkDown语法使用

    Typora下载及安装 1.百度直接搜索Typora,第一个词条点进去 2.进入之后点击Download 3.选择操作系统,因为我的是windows,所以我选择windows版本进行下载 4.根据自己 ...

  7. Nginx TP框架伪静态配置

    location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } }

  8. Identityserver4 ClientCredentials授权

    转自:https://www.cnblogs.com/hyqq/p/14138024.html:侵删. Client Credentials 客户端应用不代表用户,客户端应用本身就相当于资源所有者 通 ...

  9. windows微信如何双开

    生活中存在同时使用两个微信的情况,一个工作一个生活,这时希望同时在电脑上登录两个账号.如何做到呢?步骤如下: 右键单击"微信"图标,选择属性,目标框内的路径就是微信安装路径,复制目 ...

  10. VsCode新建Java、SpringBoot、Python、JavaWeb项目的基本步骤

    新建Java项目 选中正上方的搜索框,按下F1快捷键,输入create Java,即可出现这样的一个命令: 选中这个: 然后为新创建的项目选择一个合适的位置就好啦! 新建SpringBoot项目 选中 ...