Prechádzať zdrojové kódy

优化服务器构建配置

Michael Wang 3 rokov pred
rodič
commit
25d520289c
6 zmenil súbory, kde vykonal 61 pridanie a 6 odobranie
  1. 2 2
      .env.production
  2. 2 0
      .env.test
  3. 31 0
      jenkins.sh
  4. 5 1
      package.json
  5. 19 2
      prebuild.mjs
  6. 2 1
      src/constants/constants.ts

+ 2 - 2
.env.production

@@ -1,2 +1,2 @@
-VITE_SLS_STORE_NAME=student-client-test
-VITE_CONFIG_FILE_SEVER_URL=https://ecs-test-static.qmth.com.cn
+VITE_SLS_STORE_NAME=student-client
+VITE_CONFIG_FILE_SEVER_URL=https://ecs-static.qmth.com.cn

+ 2 - 0
.env.test

@@ -0,0 +1,2 @@
+VITE_SLS_STORE_NAME=student-client-test
+VITE_CONFIG_FILE_SEVER_URL=https://ecs-test-static.qmth.com.cn

+ 31 - 0
jenkins.sh

@@ -0,0 +1,31 @@
+#!/bin/bash
+set -e # 如果构建失败,则退出,不能删除旧的包
+
+if [ "$#" -ne 1 ] ; then
+  echo "Usage: $0 BUILD_ENV" >&2
+  exit 1
+fi
+
+pwd
+
+echo “build env: $1”
+
+pnpm i
+npm run build:$1
+
+mkdir -p ~/project/examcloud/static-new/oe-web-v3/temp
+cp -r  dist ~/project/examcloud/static-new/oe-web-v3/temp
+
+cd ~/project/examcloud/static-new/oe-web-v3
+if [ -d "dist" ]; then
+  currentTime=`date "+%Y%m%d%H%M%S"`
+  echo "dist backup... $currentTime"
+  tar cf oe-web-bak-$currentTime.tar.gz dist
+  rm -rf dist/*
+fi
+
+mv temp/dist .
+rm -rf temp
+echo "ok..."
+
+

+ 5 - 1
package.json

@@ -12,7 +12,11 @@
     "serve": "vite preview",
     "lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore --fix src",
     "format": "prettier --ignore-path .gitignore .  --write",
-    "test": "vitest"
+    "test": "vitest",
+    "prebuild:test": "node --experimental-json-modules prebuild.mjs test",
+    "build:test": "vite build --mode test",
+    "prebuild:prod": "node --experimental-json-modules prebuild.mjs production",
+    "build:prod": "vite build --mode production"
   },
   "dependencies": {
     "@chenfengyuan/vue-qrcode": "^2.0.0",

+ 19 - 2
prebuild.mjs

@@ -4,7 +4,24 @@ import moment from "moment";
 import packageJson from "./package.json" assert { type: "json" };
 
 console.log("> prebuild");
-console.log("> prebuild create .env.*.local");
+console.log(process.argv);
+
+if (process.argv.length < 3) {
+  console.log(
+    "命令格式:\nnode --experimental-json-modules prebuild.mjs [mode]"
+  );
+  process.exit(1);
+}
+
+const mode = process.argv[2];
+const validModes = ["production", "staging", "test", "dev"];
+if (!validModes.includes(mode)) {
+  console.log(`mode: ${mode} 不合法,合法的mode为 `, validModes);
+  process.exit(1);
+}
+
+const localEnv = ".env." + mode + ".local";
+console.log("> prebuild create " + localEnv);
 
 // const packageJson = require("./package.json");
 
@@ -17,7 +34,7 @@ console.log("  当前的git版本为 " + revision);
 
 // eslint-disable-next-line @typescript-eslint/no-unsafe-call
 writeFileSync(
-  ".env.production.local",
+  localEnv,
   `VITE_FE_VERSION=${packageJson.version}
 VITE_BUILD_DATE=${buildDate}
 VITE_GIT_REPO_VERSION=${revision}

+ 2 - 1
src/constants/constants.ts

@@ -12,9 +12,10 @@ export const WEEKDAY_NAMES: Record<number, string> = {
 const env = import.meta.env;
 export const VITE_SLS_STORE_NAME = env.VITE_SLS_STORE_NAME as string;
 export const VITE_CONFIG_FILE_SEVER_URL = env.VITE_CONFIG_FILE_SEVER_URL;
+const modeStr = env.MODE !== "production" ? env.MODE + "-" : "";
 export const VITE_GIT_REPO_VERSION = env.DEV
   ? "开发中..."
-  : (env.VITE_GIT_REPO_VERSION as string);
+  : modeStr + env.VITE_GIT_REPO_VERSION;
 
 const domainCandidate =
   window.location.hostname.split(".")[0] + ".ecs.qmth.com.cn";