此 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. 使用Jquery的.css('border')在火狐不兼容

    改成如下就可以兼容火狐.IE.谷歌(border-left-color.border-left-width等)

  2. maya灯光导入houdini插件开发——技术文档

    如果想了解插件开发流程的话,可以参考我另外一篇文章maya灯光导入houdini插件开发 插件下载地址 接下来我将说明怎么使用这插件(因为之前写过技术文档,所以也懒得再写一份了,直接照搬上来) 1.插 ...

  3. POE供电及PD的功率分级

    POE供电标准有IEEE802.3af和IEEE802.3at 802.3af,PSE最高提供15.5W的功率而PD端则为12.95W: 802.3at,PSE最高提供30W的功率而PD端则为25W: ...

  4. 循环神经网络(Recurrent Neural Networks)(第一部分)

    参考 https://www.cnblogs.com/royhoo/p/Recurrent-Neural-Networks-1.html

  5. Q:su命令切换用户无法使用,被拒绝

    su命令切换用户无法使用,被拒绝 问题描述 su 命令报错 su: Permission denied 如下图: su 命令 报错 su: Permission denied,不管是su普通用户还是r ...

  6. Linux 系统下挂载linux 系统盘

    1应用背景:有时候系统崩溃无法修复,无法正常启动,而系统盘里面有需要的文件如log等需要拷贝出来,或者系统盘可以正常启动但是不方便用一台设备来启动这个系统盘.而直接将Linux系统盘接到windows ...

  7. [转]C++回调函数

    回调函数 回调函数是一个时时听到的概念,比如在windows API编程时遇到的WinProc函数,就是我们编写而由操作系统调用的函数.现在,我们需要慢慢又详细的记录一下这个问题. 库与使用者的问题 ...

  8. vs2010 Windows程序打包成安装包方法

    1.  在vs2010 选择"新建项目"--"其他项目类型"--"Visual Studio Installerà"安装项目": ...

  9. 手把手教你基于luatos的4G(LTE Cat.1)模组接入华为云物联网平台

    摘要:本期文章采用了4G LTE Cat.1模块,编程语言用的是lua,实现对华为云物联网平台的设备通信与控制 本文分享自华为云社区<基于luatos的4G(LTE Cat.1)模组接入华为云物 ...

  10. Android笔记--SQL

    SQL基本语法 基本语法在Python和Java那里都已经重复过了,这里就不再重复了 SQLiteDatabase--SQLite的数据库管理类 主要分为以下3类: 管理类 相关实现: 事务类 数据库 ...