此 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. WLAN - AP上线

    1 保证AC,AP互通2 AP上线capwap 1 AP组创建 2 管理域模板 3 AC组和管理域模板绑定 4 指定AC的接口 5 导入AP3 WALN的业务配置 1 安全模板 2 SSID 模板 3 ...

  2. 盒模型属性-width height-padding-border-margin

    宽度 width: 作用:设置可以添加元素内容的区域的宽度. 属性值:  特殊应用: • 如果一个元素不添加width 属性,默认属性值为auto,不同的元素浏览器会根据其 特点自动计算出实际宽度,例 ...

  3. opengl编程天天踩的坑

    1. VBO 的 target 是 GL_ARRAY_BUFFER 不是  GL_VERTEX_BUFFER 2. glUniform()用来给uniform传变量 别用成 glProgramUnif ...

  4. binom_test

    bt <- function(a, b, p = 0.5) {binom.test(a, b+a, 0.5, alternative= c("two.sided"), con ...

  5. Hive不能载入本地数据:FAILED: SemanticException Line 1:17 Invalid path

    1.问题描述: (1)问题示例: hive (test)> create table t_textfile(c1 string,c2 int,c3 string,c4 string)      ...

  6. Apache Ranger系列七:Hive 和 Spark 执行过程中的文件路径配置

    背景:在使用Ranger鉴权的过程中,要求必须开启impersonation功能(即执行用户与提交用户保持一致,而不是统一代理的hive/spark).但是在执行的过程中,会需要在hdfs存储临时的文 ...

  7. TFlite 多线程并行

    import numpy as np from multiprocessing import Process, Queue def process_data(data, model_TSNet, ts ...

  8. Go_day08

    Go的Io流 获取文件信息 //获取文件 fileinfo, err := os.Stat("./aa.txt")//相对绝对路径都可以 if err != nil { fmt.P ...

  9. 去除Bigdecimal末尾的.00

    String total = new BigDecimal("100.00").stripTrailingZeros().toPlainString();

  10. zookeeper异常

    1. KeeperErrorCode = Unimplemented for /service 在使用curator时,对zk有版本匹配关系. Curator 2.**    <--->  ...