写一个跨目录部署前端项目的sh脚本
时间: 2023-12-03 17:41:59 浏览: 27
以下是一个简单的跨目录部署前端项目的 sh 脚本:
```sh
#!/bin/bash
# 前端项目路径
FRONTEND_DIR=/path/to/frontend
# 服务器上存放前端文件的路径
SERVER_DIR=/var/www/frontend
# 进入前端项目路径
cd $FRONTEND_DIR
# 安装依赖
npm install
# 打包
npm run build
# 进入服务器上存放前端文件的路径
cd $SERVER_DIR
# 备份原有文件
mv index.html index.html.bak
mv static static.bak
# 将打包生成的文件复制到服务器上
cp -r $FRONTEND_DIR/build/index.html .
cp -r $FRONTEND_DIR/build/static .
# 修改权限
chown -R www-data:www-data index.html static
# 重启服务器
service nginx restart
echo "前端项目部署完成!"
```
这个脚本假定前端项目的源码位于 `/path/to/frontend` 目录下,服务器上存放前端文件的路径为 `/var/www/frontend`。脚本会在前端项目路径下安装依赖,打包生成静态文件,然后将静态文件复制到服务器上,并修改权限,最后重启服务器。如果需要修改路径,可以根据实际情况修改 `FRONTEND_DIR` 和 `SERVER_DIR` 变量。
相关问题
写一个跨目录的sh脚本,支持选择部署某个或多个前端项目
假设你的前端项目目录结构如下:
```
- project
- frontend1
- frontend2
- frontend3
```
你可以写一个交互式的脚本,让用户选择要部署的前端项目,然后执行相应的命令。以下是一个示例脚本:
```sh
#!/bin/bash
PROJECT_DIR=/path/to/project
# Prompt the user to select the frontend projects to deploy
echo "Which frontend projects do you want to deploy?"
options=("frontend1" "frontend2" "frontend3" "all")
select opt in "${options[@]}"
do
case $opt in
"frontend1")
PROJECTS="frontend1"
break
;;
"frontend2")
PROJECTS="frontend2"
break
;;
"frontend3")
PROJECTS="frontend3"
break
;;
"all")
PROJECTS="frontend1 frontend2 frontend3"
break
;;
*)
echo "Invalid option"
;;
esac
done
# Change to the project directory
cd $PROJECT_DIR
# Deploy the selected projects
for project in $PROJECTS; do
cd $project
echo "Deploying $project..."
# Run the deployment command for each project
# For example, you can use "npm run build" to build the project
# and copy the files to the server
# Replace this command with your own deployment command
npm run build
cd ..
done
echo "Done"
```
将这个脚本保存为 `deploy.sh`,然后在终端中执行 `./deploy.sh` 即可运行。用户可以选择要部署的项目,脚本会进入相应的目录并执行部署命令。
写一个跨目录的sh脚本,支持选择部署某个或多个不同目录的前端项目且可以选择部署环境
以下是一个简单的跨目录部署前端项目的sh脚本,支持选择不同目录和环境:
```bash
#!/bin/bash
# 定义可选的目录和环境
declare -a dirs=("project1" "project2" "project3")
declare -a envs=("dev" "test" "prod")
# 选择要部署的目录
echo "请选择要部署的目录:"
select dir in "${dirs[@]}"; do
if [[ " ${dirs[@]} " =~ " ${dir} " ]]; then
break
else
echo "请选择正确的目录。"
fi
done
# 选择要部署的环境
echo "请选择要部署的环境:"
select env in "${envs[@]}"; do
if [[ " ${envs[@]} " =~ " ${env} " ]]; then
break
else
echo "请选择正确的环境。"
fi
done
# 进入选择的目录并部署
cd /path/to/${dir}
npm install
npm run build:${env}
```
在脚本中,我们定义了可选的目录和环境,使用 `select` 命令让用户选择要部署的目录和环境,然后进入选择的目录并执行部署命令。用户可以使用 `Ctrl-C` 来退出脚本。