此 shell 是提供给前端登录服务器自动化部署 vue 项目的

用此命令,工具化部署项目,可以杜绝前端自己部署项目时,对服务器违规操作

如有其它问题,可在下方留言!

  1. #!/bin/sh
  2. # url:https://github.com/jefferyjob/tool
  3. #====================================================================
  4. #=== 项目路径定义 ===================================================
  5. #=== 请在此定义您的项目路径 =========================================
  6. #====================================================================
  7. dir_array=(
  8. "/data/Web/make_client/web_make_client"
  9. "/data/Web/make_client/web_make_client_back"
  10. "/data/Web/WebUPinVue"
  11. )
  12. #===================================================================
  13. #=== 是否开启确认 ==================================================
  14. #=== true: 开启、false: 关闭 ======================================
  15. #===================================================================
  16. verify=true
  17. #====================================================================
  18. #=== 命令执行参数 ===================================================
  19. #====================================================================
  20. clear
  21. #echo "+------------------------------------------------------+:
  22. #echo "| Npm project automation deployment |"
  23. #echo "+------------------------------------------------------+"
  24. echo -e "\033[33m请选择要执行的vue项目\033[0m"
  25. for i in ${!dir_array[@]}
  26. do
  27. echo -e "\033[33m$i: ${dir_array[$i]} \033[0m"
  28. done
  29. # 提示输入
  30. read -p "请输入项目序号: " num
  31. if [ ! -n "$num" ];then
  32. echo -e "\033[31mError: 未选择项目序号\033[0m"
  33. exit
  34. elif echo $num | grep -q '[^0-9]';then
  35. echo -e "\033[31mError: 请输入数字格式\033[0m"
  36. exit
  37. elif [[ $num -lt 0 ]]||[[ $num -gt ${#dir_array[@]} ]];then
  38. echo -e "\033[31mError: 错误的项目序号\033[0m"
  39. exit
  40. elif [ ! -x "${dir_array[$num]}" ]; then
  41. echo -e "\033[31mError: 该项目目录不存在或没有可执行权限\033[0m"
  42. exit
  43. fi
  44. # 项目路径输出
  45. echo -e "\033[36mvue path: ${dir_array[$num]}\033[0m"
  46. echo -e '\n'
  47. # npm 命令定义
  48. command_array=("cnpm install" "cnpm run build" "cnpm install && cnpm run build" "npm install" "npm run build" "npm install && npm run build")
  49. echo -e "\033[33m请选择要执行的npm命令\033[0m"
  50. for i in ${!command_array[@]}
  51. do
  52. echo -e "\033[33m$i: ${command_array[$i]} \033[0m"
  53. done
  54. # 提示输入
  55. read -p "请输入命令序号: " number
  56. if [ ! -n "$number" ];then
  57. echo -e "\033[31mError: 未选择命令序号\033[0m"
  58. exit
  59. elif echo $number | grep -q '[^0-9]';then
  60. echo -e "\033[31mError: 请输入数字格式\033[0m"
  61. exit
  62. elif [[ $number -lt 0 ]]||[[ $number -gt ${#command_array[@]} ]];then
  63. echo -e "\033[31mError: 错误的命令序号\033[0m"
  64. exit
  65. fi
  66. # 项目路径输出
  67. echo -e "\033[36mvue command: ${command_array[$number]}\033[0m"
  68. echo -e '\n'
  69. # 输出执行命令
  70. echo -e "\033[44;37mcommand: ${dir_array[$num]} && ${command_array[$number]}\033[0m"
  71. # 提示输入
  72. if [[ $verify == true ]] ; then
  73. read -p "您是否要执行此命令(y/n): " command
  74. if [ "$command" != "y" ]&&[ "$command" != "n" ];then
  75. echo -e "\033[31mError: 输入错误\033[0m"
  76. exit
  77. elif [[ $command == 'n' ]];then
  78. echo -e "\033[31m程序已终止... ...end\033[0m"
  79. exit
  80. fi
  81. fi
  82. # 命令执行
  83. # 命令执行
  84. command=${command_array[$number]}
  85. OLD_IFS="$IFS"
  86. IFS="&&"
  87. command_arr=($command)
  88. IFS="$OLD_IFS"
  89. for i in ${!command_arr[@]}
  90. do
  91. cd ${dir_array[$num]} && ${command_arr[$i]}
  92. 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. ext表单合并行

    在js里加入方法 /*** 合并Grid的数据列* @param grid {Ext.Grid.Panel} 需要合并的Grid* @param colIndexArray {Array} 需要合并列 ...

  2. 常用功能系列---【JWT生成Token实现接口登录认证方案思路】

    JWT生成Token实现接口登录认证方案思路 方案一(双token实现无感刷新) 在token中,refreshToken的作用主要是避免token过期时,前端用户突然退出登录,跳转至登录页面. 但是 ...

  3. echarts图表自适应屏幕/浏览器窗口大小

    昨天完成echarts柱状图的生成,突然发现在项目中还有个小缺陷,当柱状图完成渲染之后,放大缩小浏览器窗口echarts柱状图宽度没有随之改变. 接昨天的代码做了小调整: setTimeout(fun ...

  4. python发布定时任务(schedule模块)

    最近公司开始让在自己开发的软件上写日志,有几次下班了都忘了写,好几次都是给领导发邮件,说明一下自己没有写日志这件事,很麻烦.但是我一想我每天都要写,岂不是很麻烦,想想自己之前有爬虫经验,为什么自己不写 ...

  5. Collectors类的静态工厂方法-《Java 8实战》笔记

  6. Java简单认识及环境下载

    Java的特性和优势 简单性 面向对象 可移植性 跨平台性 write once run anywhere 高性能 分布式 动态性 反射 多线程 安全性 健壮性 Java三大版本 JavaSE:标准版 ...

  7. git—分支设置

    什么是分支? 项目以上线,但需要开发新的功能.不能直接在项目上进行开发的,这时候就需要创建一个分支,去完成新功能的开发.测试等.完成之后合并到主分支上面.如果新功能的开发不用分支,导致的问题就会有很多 ...

  8. 5G如何加速无人快递?5G智能网关新应用

    网上购物已经是现代生活的主流消费方式之一,伴随网购的繁荣,物流快递行业也进入到一个最火热的时期.而在这之中,有限的快递配送能力和日益增长的配送需求的矛盾持续凸显,因此无人快递车一类的创新应用也应运而生 ...

  9. 什么是5G垂直行业?

    什么是垂直行业呢? 感觉"垂直行业"这个词在太多地方遇到,但是这个词的涵盖范围到底是什么呢? 垂直这一概念源于两条直线(或平面)的直角交叉,两条直线是相互作为参照物的.比如,我们可 ...

  10. 文件上传靶场 upload-labs搭建 Pass 1-4

    upload-labs是一个练习文件上传的靶场 我们需要先安装中间件和PHP,推荐使用小皮面板,如何安装使用见sqli-labs搭建前部分 upload-labs下载:https://gitcode. ...