static-build.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/usr/bin/env bash
  2. ###
  3. # Author: shuisheng
  4. # Date: 2022-04-26 01:54:48
  5. # Description: https://github.com/galaxy-s10/sh/blob/master/build.sh
  6. # Email: 2274751790@qq.com
  7. # FilePath: /billd-live/deploy/static-build.sh
  8. # Github: https://github.com/galaxy-s10
  9. # LastEditTime: 2024-01-25 10:09:40
  10. # LastEditors: shuisheng
  11. ###
  12. # 生成头部文件快捷键:ctrl+cmd+i
  13. # 静态部署的项目, 一般流程是在jenkins里面执行项目里的static-build.sh进行构建,
  14. # 构建完成后会连接ssh, 执行/node/sh/static.sh, static.sh会将构建的完成资源复制到/node/xxx
  15. # 复制完成后, static.sh会执行清除buff/cache操作
  16. # 注意:JOBNAME=$1,这个等号左右不能有空格!
  17. JOBNAME=$1 #约定$1为任务名
  18. ENV=$2 #约定$2为环境
  19. WORKSPACE=$3 #约定$3为Jenkins工作区
  20. PORT=$4 #约定$4为端口号
  21. TAG=$5 #约定$5为git标签
  22. PUBLICDIR=/node #约定公共目录为/node
  23. # 注意:要先进入项目所在的目录,然后再执行命令!!!
  24. if [ $ENV = 'beta' ]; then
  25. cd $PUBLICDIR/$JOBNAME/$ENV
  26. elif [ $ENV = 'preview' ]; then
  27. cd $PUBLICDIR/$JOBNAME/$ENV
  28. elif [ $ENV = 'prod' ]; then
  29. cd $PUBLICDIR/$JOBNAME/$ENV
  30. else
  31. cd $PUBLICDIR/$JOBNAME
  32. fi
  33. echo 删除node_modules:
  34. rm -rf node_modules
  35. echo 查看node版本:
  36. node -v
  37. echo 查看npm版本:
  38. npm -v
  39. echo 设置npm淘宝镜像:
  40. npm config set registry https://registry.npm.taobao.org/
  41. echo 查看当前npm镜像:
  42. npm get registry
  43. if ! type pnpm >/dev/null 2>&1; then
  44. echo 'pnpm未安装,先全局安装pnpm'
  45. npm i pnpm -g
  46. else
  47. echo 'pnpm已安装'
  48. fi
  49. echo 查看pnpm版本:
  50. pnpm -v
  51. echo 设置pnpm淘宝镜像:
  52. pnpm config set registry https://registry.npm.taobao.org/
  53. pnpm config set @billd:registry http://registry.hsslive.cn/
  54. echo 查看当前pnpm镜像:
  55. pnpm config get registry
  56. pnpm config get @billd:registry
  57. echo 开始安装依赖:
  58. pnpm install
  59. if [ $ENV = 'beta' ]; then
  60. echo 开始构建测试环境:
  61. elif [ $ENV = 'preview' ]; then
  62. echo 开始构建预发布环境:
  63. elif [ $ENV = 'prod' ]; then
  64. echo 开始构建正式环境:
  65. else
  66. echo 开始构建$ENV环境:
  67. fi
  68. npx cross-env VUE_APP_RELEASE_PROJECT_NAME=$JOBNAME VUE_APP_RELEASE_PROJECT_ENV=$ENV webpack --config ./script/config/webpack.common.ts --env production