ZaiZai преди 2 години
родител
ревизия
09ec332ad1
променени са 4 файла, в които са добавени 104 реда и са изтрити 14 реда
  1. 10 8
      README.md
  2. 6 2
      package.json
  3. 84 0
      scripts/build.sh
  4. 4 4
      src/views/home/index/admin.vue

+ 10 - 8
README.md

@@ -68,22 +68,24 @@ js-fast-way 文档
 - **[文档地址](https://js-fast-way.vercel.app/)**
 - **[国内文档地址](http://izaizaiaa.gitee.io/js-fast-way)**
 
-
 ---
 
 ### 打包说明
 
-#### 一键全打包
-
-`node:build` 为一键打包为zip的方式
-
+`build:zip` 为一键打包为zip的方式
+`build:zip:wgt` 为一键打包为zip的方式(不包含 `/public/plugins` 文件夹)
 
-#### 缺省打包
+`build:test` 为一键打包,然后自动上传到测试服务器上并自动部署的方式
+`build:test:wgt` 为一键打包,然后自动上传到测试服务器上并自动部署的方式(不包含 `/public/plugins` 文件夹)
 
-`build:nopublic` 为不包含`/public/plugins`文件夹的打包方式,减少每次打包后的体积过大的问题。
+`build:prod` 为一键打包,然后自动上传到正式服务器上并自动部署的方式
+`build:prod:wgt` 为一键打包,然后自动上传到正式服务器上并自动部署的方式(不包含 `/public/plugins` 文件夹)
 
-但是如果此相关文件有变动,需要使用 `node:build` 方式打包
+### 其它说明
 
 一般来说,`/public/plugins` 很少出现变动的情况。
 
 在服务器上更新时,请注意,不要删除服务器上存在的 `plugins`,否则会出现异常。
+
+如果本地 `/public/plugins` 文件夹 有变动,请使用 非 `wgt` 的打包方式
+

+ 6 - 2
package.json

@@ -5,8 +5,12 @@
     "scripts": {
         "dev": "vite",
         "build": "vite build",
-        "node:build": "node ./scripts/build.js && vite build && node ./scripts/restore.js && node ./scripts/zip.js",
-        "build:nopublic": "node ./scripts/build.js && vite build && node ./scripts/restore.js && node ./scripts/public.js && node ./scripts/zip.js"
+        "build:zip": "sh ./scripts/build.sh all",
+        "build:zip:wgt": "sh ./scripts/build.sh wgt",
+        "build:test": "sh ./scripts/build.sh all test",
+        "build:test:wgt": "sh ./scripts/build.sh wgt test",
+        "build:prod": "sh ./scripts/build.sh all prod",
+        "build:prod:wgt": "sh ./scripts/build.sh wgt prod"
     },
     "dependencies": {
         "axios": "^1.4.0",

+ 84 - 0
scripts/build.sh

@@ -0,0 +1,84 @@
+#!/bin/bash
+
+#本地压缩文件名
+file_name="hac.zip"
+
+#测试服器上的目录地址
+file_path="hac.hczcxx.cn"
+
+#测试服务器上的演示地址
+demo_url="http://192.168.0.109:5176/"
+
+#测试服务器上的登录密码
+passwd="admin123@"
+
+# 打包前的准备
+node ./scripts/build.js
+# 执行打包命令
+vite build
+# 恢复配置文件
+node ./scripts/restore.js
+# 排除打包文件
+if [ $1 == "wgt" ]; then
+    node ./scripts/public.js
+fi
+# 执行打包为zip
+node ./scripts/zip.js
+
+
+ # 上传到测试服务器
+function testServer() {
+    expect -c "
+        spawn scp ./zip/${file_name} root@192.168.0.109:/www/wwwroot/${file_path}
+        expect {
+            \"yes/no\" {send \"yes\r\";exp_continue;}
+            \"*password\" {set timeout 500;send \"${passwd}\r\";}
+        }
+    expect eof"
+
+#服务器上的相关操作
+/usr/bin/expect << EOF
+    set time 30
+    spawn ssh root@192.168.0.109
+    expect {
+        "*yes/no" { send "yes\r"; exp_continue }
+        "*password:" { send "${passwd}\r" }
+    }
+
+    # 进入当前项目的目录
+    expect "*]#"
+    send "cd /www/wwwroot/${file_path}\r"
+
+    # 删除 static 目录
+    expect "*]#"
+    send "rm -rf static\r"
+
+     # 删除 plugins 目录
+    expect "*]#"
+    send "rm -rf plugins\r"
+
+    # 解压上传的文件压缩包
+    expect "*]#"
+    send "unzip -o ${file_name}\r"
+
+    # 删除上传的文件压缩包
+    expect "*]#"
+    send "rm -rf ${file_name}\r"
+    expect "*]#"
+
+    # 退出
+    send "exit\r"
+    expect eof
+EOF
+    echo "编译打包后自动部署到测试服务器上完成"
+    echo "测试服务器地址:${demo_url}"
+}
+
+ # 上传到测试服务器
+if [ $2 == "test" ]; then
+    testServer
+elif [ $2 == "prod" ]; then
+    echo "暂不支持自动部署到正式服务器上,如有需求,请手动上传到正式服务器上更新"
+else
+    echo "编译完成"
+fi

+ 4 - 4
src/views/home/index/admin.vue

@@ -69,7 +69,7 @@
                                         <div class="title">总合同</div>
                                         <div class="num-box">
                                             <span class="num">{{annualCostData.yearContractMoney ?? 0}}</span>
-                                            <span class="text"></span>
+                                            <span class="text"></span>
                                         </div>
                                     </div>
                                     <div class="item-sub-icon">
@@ -85,7 +85,7 @@
                                         <div class="title">总收入</div>
                                         <div class="num-box">
                                             <span class="num">{{annualCostData.yearReturned ?? 0}}</span>
-                                            <span class="text"></span>
+                                            <span class="text"></span>
                                         </div>
                                     </div>
                                     <div class="item-sub-icon">
@@ -101,7 +101,7 @@
                                         <div class="title">总实际支出</div>
                                         <div class="num-box">
                                             <span class="num">{{annualCostData.yearStaffDisburse ?? 0}}</span>
-                                            <span class="text"></span>
+                                            <span class="text"></span>
                                         </div>
                                     </div>
                                     <div class="item-sub-icon">
@@ -117,7 +117,7 @@
                                         <div class="title">总计划支出</div>
                                         <div class="num-box">
                                             <span class="num">{{annualCostData.totalBudget ?? 0}}</span>
-                                            <span class="text"></span>
+                                            <span class="text"></span>
                                         </div>
                                     </div>
                                     <div class="item-sub-icon">