li.shaoyi 2 jaren geleden
bovenliggende
commit
749f6190be
4 gewijzigde bestanden met toevoegingen van 64 en 29 verwijderingen
  1. 7 7
      app/electron.build.js
  2. 14 14
      package.json
  3. 2 2
      public/config/appconfig.json
  4. 41 6
      vue.config.js

+ 7 - 7
app/electron.build.js

@@ -6,19 +6,19 @@ const axios = require('axios')
 const { exec } = require('child_process')
 const { build } = require('electron-builder')
 
-const getPath = (dir) => path.resolve(__dirname, dir)
-const outputDir = getPath('dist_electron') // 打包输出目录
-const fileContents = fs.readFileSync(getPath('dist/config/appconfig.json'), 'utf-8')
+const convertPath = (dir) => path.resolve(__dirname, dir)
+const outputDir = convertPath('dist_electron') // 打包输出目录
+const fileContents = fs.readFileSync(convertPath('dist/config/appconfig.json'), 'utf-8')
 const appConfig = JSON.parse(fileContents)
 
 // 打包之前清空目录
 exec('rd/s/q ' + outputDir)
 
 // 打包自动修改版本号
-const package = fs.readFileSync(getPath('package.json'), 'utf-8')
-const pkg = JSON.parse(package)
+const pkgContents = fs.readFileSync(convertPath('package.json'), 'utf-8')
+const pkg = JSON.parse(pkgContents)
 pkg.version = appConfig.version
-fs.writeFileSync(getPath('package.json'), JSON.stringify(pkg, null, 2))
+fs.writeFileSync(convertPath('package.json'), JSON.stringify(pkg, null, 2))
 
 axios.get(appConfig.apiUrl).then((res) => {
     const data = res.data.data
@@ -38,7 +38,7 @@ axios.get(appConfig.apiUrl).then((res) => {
             allowToChangeInstallationDirectory: true
         },
         win: {
-            icon: getPath('dist/favicon.ico'),
+            icon: convertPath('dist/favicon.ico'),
             target: [
                 'nsis'
             ]

+ 14 - 14
package.json

@@ -12,19 +12,19 @@
     "dev:zrwyt": "vue-cli-service serve --mode zrwyt",
     "dev:qdhs": "vue-cli-service serve --mode qdhs",
     "dev:tc": "vue-cli-service serve --mode tc",
-    "build:pc": "vue-cli-service build --mode pc",
-    "build:mobile": "vue-cli-service build --mode mobile",
-    "build:gstj": "vue-cli-service build --mode gstj",
-    "build:gstj@pc": "vue-cli-service build --mode gstj@pc",
-    "build:sbyj": "vue-cli-service build --mode sbyj",
-    "build:qxst": "vue-cli-service build --mode qxst",
-    "build:qxst@pc": "vue-cli-service build --mode qxst@pc",
-    "build:zrwyt": "vue-cli-service build --mode zrwyt",
-    "build:zrwyt@pc": "vue-cli-service build --mode zrwyt@pc",
-    "build:qdhs": "vue-cli-service build --mode qdhs",
-    "build:qdhs@pc": "vue-cli-service build --mode qdhs@pc",
-    "build:tc": "vue-cli-service build --mode tc",
-    "build:tc@pc": "vue-cli-service build --mode tc@pc",
+    "build:pc": "set \"NODE_ENV=production\" && vue-cli-service build --mode pc",
+    "build:mobile": "set \"NODE_ENV=production\" && vue-cli-service build --mode mobile",
+    "build:gstj": "set \"NODE_ENV=production\" && vue-cli-service build --mode gstj",
+    "build:gstj@pc": "set \"NODE_ENV=production\" && vue-cli-service build --mode gstj@pc",
+    "build:sbyj": "set \"NODE_ENV=production\" && vue-cli-service build --mode sbyj",
+    "build:qxst": "set \"NODE_ENV=production\" && vue-cli-service build --mode qxst",
+    "build:qxst@pc": "set \"NODE_ENV=production\" && vue-cli-service build --mode qxst@pc",
+    "build:zrwyt": "set \"NODE_ENV=production\" && vue-cli-service build --mode zrwyt",
+    "build:zrwyt@pc": "set \"NODE_ENV=production\" && vue-cli-service build --mode zrwyt@pc",
+    "build:qdhs": "set \"NODE_ENV=production\" && vue-cli-service build --mode qdhs",
+    "build:qdhs@pc": "set \"NODE_ENV=production\" && vue-cli-service build --mode qdhs@pc",
+    "build:tc": "set \"NODE_ENV=production\" && vue-cli-service build --mode tc",
+    "build:tc@pc": "set \"NODE_ENV=production\" && vue-cli-service build --mode tc@pc",
     "lint": "vue-cli-service lint",
     "dev": "electron .",
     "build": "node app/electron.build.js"
@@ -85,4 +85,4 @@
     "vconsole": "^3.14.6",
     "worker-loader": "^3.0.8"
   }
-}
+}

+ 2 - 2
public/config/appconfig.json

@@ -1,7 +1,7 @@
 {
   "appName": "多元世纪交易中心",
-  "version": "1.0.0",
-  "versionCode": "100000",
+  "version": "1.0.1",
+  "versionCode": "100001",
   "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204",
   "shwoRegister": true
 }

+ 41 - 6
vue.config.js

@@ -1,15 +1,19 @@
-const { resolve } = require('path')
+const fs = require('fs')
+const path = require('path')
 const { defineConfig } = require('@vue/cli-service')
 const moment = require('moment')
 const CompressionPlugin = require('compression-webpack-plugin')
 const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin')
 const CopyWebpackPlugin = require('copy-webpack-plugin')
 
+const convertPath = (dir) => path.resolve(__dirname, dir)
+const outputDir = convertPath('app/dist') // 打包输出目录
+
 module.exports = defineConfig({
   transpileDependencies: [/node_modules/],
   productionSourceMap: false, // 打包取消.map
   publicPath: './',
-  outputDir: './app/dist',
+  outputDir,
   pages: {
     indexPath: {
       entry: process.env.VUE_APP_ROOT + 'main.ts',
@@ -39,8 +43,8 @@ module.exports = defineConfig({
   },
   chainWebpack: (config) => {
     config.resolve.alias
-      .set('@pc', resolve(__dirname, 'src/packages/pc/'))
-      .set('@mobile', resolve(__dirname, 'src/packages/mobile/'))
+      .set('@pc', convertPath('src/packages/pc/'))
+      .set('@mobile', convertPath('src/packages/mobile/'))
 
     config.plugin('compressionPlugin')
       .use(new CompressionPlugin({
@@ -57,13 +61,44 @@ module.exports = defineConfig({
   },
   configureWebpack: (config) => {
     const oem = process.env.VUE_APP_OEM
+
+    // const manifestPath = oem ? convertPath(oem + 'manifest.json') : convertPath('public/manifest.json')
+    // const manifestContents = fs.readFileSync(manifestPath, 'utf-8')
+    // const manifest = JSON.parse(manifestContents)
+    // console.log(manifest)
+
+
+    // 打包自动修改版本号
+    if (process.env.NODE_ENV === 'production') {
+      const configPath = oem ? convertPath(oem + 'config/appconfig.json') : convertPath('public/config/appconfig.json')
+      const cfgContents = fs.readFileSync(configPath, 'utf-8')
+      const cfg = JSON.parse(cfgContents)
+
+      const arr = cfg.version.split('.').map(Number)
+      arr[arr.length - 1] += 1 // 版本号自动+1
+
+      // 版本号100进1
+      for (let i = arr.length - 1; i >= 0; i--) {
+        if (i > 0 && arr[i] > 99) {
+          arr[i] = 0
+          if (arr[i - 1] > -1) {
+            arr[i - 1] += 1
+          }
+        }
+      }
+
+      cfg.version = arr.join('.')
+      cfg.versionCode = (Number(cfg.versionCode) + 1).toString()
+      fs.writeFileSync(configPath, JSON.stringify(cfg, null, 2))
+    }
+
     if (oem) {
       // 打包时复制指定目录文件到目标目录
       config.plugins.push(new CopyWebpackPlugin({
         patterns: [
           {
-            from: resolve(__dirname, oem), // 指定目录
-            to: resolve(__dirname, './app/dist'), // 目标目录
+            from: convertPath(oem), // 指定目录
+            to: outputDir, // 目标目录
             force: true, // 强制覆盖文件
           }
         ]