From 0d3db253cad1fb49c4fae9b9a537c8c318c7172f Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 29 十一月 2023 10:23:59 +0800 Subject: [PATCH] 优化应用中心卸载 --- vue.config.js | 342 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 186 insertions(+), 156 deletions(-) diff --git a/vue.config.js b/vue.config.js index f4b88d8..0ff71ac 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,156 +1,186 @@ -"use strict"; -const glob = require("glob"); -const pages = {}; -const IS_VENDOR = /[\\/]node_modules[\\/]/; -const pageVendor = {}; - -const pkg = require("./package.json"); -const timestamp = new Date().getTime(); -const queryStr = `?v=${pkg.version}&t=${timestamp}`; - -glob.sync("./src/pages/**/main.ts").forEach((path) => { - const chunk = path.split("./src/pages/")[1].split("/main.ts")[0]; - const chunk_vendor = `${chunk}-vendors`; - const chunk_common = `${chunk}-common`; - pages[chunk] = { - entry: path, - template: "public/index.html", - title: chunk == "desktop/index" ? "SmartAI" : chunk, - chunks: [chunk_vendor, "chunk-common", chunk], - }; - if (chunk != "index") { - pages[chunk].filename = "view/" + chunk + ".html"; - } - - pageVendor[chunk_vendor] = { - name: chunk_vendor, - priority: -11, - chunks: (c) => c.name === chunk, - test: /\.js$/, - enforce: true, - }; - - // pageVendor[chunk_common] = { - // name: chunk_common, - // priority: -20, - // chunks: 'initial', - // minChunks: 2, - // reuseExistingChunk: true, - // enforce: true - // } -}); - -// const serverUrl = "http://192.168.20.189/:7009"; // 缇婁簲 -const serverUrl = "http://192.168.8.10:7009"; -const serverUrl2 = "http://192.168.8.10:9000"; -// const serverUrl = "http://192.168.20.10:7009"; -// const serverUrl2 = "http://192.168.20.10:9000"; - -// const cir = require("circular-dependency-plugin"); - -module.exports = { - pages, - chainWebpack: (config) => { - config.plugins.delete("named-chunks"); - if (process.env.NODE_ENV === "production") { - config.output.filename("js/[name].js" + queryStr).end(); - config.output.chunkFilename("js/[name].js" + queryStr).end(); - // 淇敼鐢熶骇閰嶇疆 - config.plugin("extract-css").tap(() => [ - { - filename: `css/[name].css${queryStr}`, - chunkFilename: `css/[name].css${queryStr}`, - }, - ]); - } - - config.optimization.splitChunks({ - cacheGroups: pageVendor, - }); - - // config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', publicPath: '../' }) - //config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', outputPath: '../' }) - }, - productionSourceMap: false, - filenameHashing: false, - pwa: { - iconPaths: { - favicon32: "favicon.ico", - favicon16: "favicon.ico", - }, - }, - devServer: { - proxy: { - "/track": { - target: serverUrl, - // ws: true, - changeOrigin: true, - }, - "/ws": { - target: serverUrl, - // ws: true, - changeOrigin: true, - }, - "/data/api-v/app/findAllApp": { - // target: '/', - target: "http://localhost:8080/", - changeOrigin: true, - pathRewrite: { - "^/data/api-v/app/findAllApp": "apps.json", - }, - }, - "/api-c": { - target: serverUrl, - changeOrigin: true, - }, - "/api-v": { - target: serverUrl, - changeOrigin: true, - }, - "/api-f": { - target: serverUrl, - // secure: false, - changeOrigin: true, - }, - "/api-p": { - target: serverUrl, - // secure: false, - changeOrigin: true, - }, - "/api-u": { - target: serverUrl, - changeOrigin: true, - }, - "/httpImage": { - target: serverUrl, - changeOrigin: true, //寮�鍚唬鐞� - }, - "/files": { - target: serverUrl, - changeOrigin: true, //寮�鍚唬鐞� - }, - "/iotdata": { - target: serverUrl2, - changeOrigin: true, //寮�鍚唬鐞�, - }, - }, - }, - // configureWebpack: { - // plugins: [ - // new cir({ - // exclude: /a\.js|node_modules/, - // include: /dir/, - // failOnError: true, - // allowAsyncCycles: false, - // cwd: process.cwd(), - // }), - // ], - // }, - /* css:{ - loaderOptions:{ - scss:{ - prependData:`@import"@/assets/css/globalVariable.scss"` - } - } - } */ -}; +"use strict" +const glob = require("glob") +const { ExitStatus } = require("typescript") +const pages = {} +const IS_VENDOR = /[\\/]node_modules[\\/]/ +const pageVendor = {} + +const pkg = require("./package.json") +const timestamp = new Date().getTime() +const queryStr = `?v=${pkg.version}&t=${timestamp}` + +const basicApps = [ + "index", + "ai", + "analysisPower", + "cameraAccess", + "cameraVideo", + "datapush", + "desktop", + "gb28181", + "library", + "search", + "settings", + "syslog" +] + +const argv = process.env.npm_lifecycle_event + +glob.sync("./src/pages/**/main.ts").forEach((path) => { + const chunk = path.split("./src/pages/")[1].split("/main.ts")[0] + + // 浠呯紪璇戝熀纭�搴旂敤 + if (argv == "release") { + let app = chunk.split("/") + if (app.length < 0 || basicApps.indexOf(app[0]) < 0) { + return + } + } + + const chunk_vendor = `${chunk}-vendors` + const chunk_common = `${chunk}-common` + pages[chunk] = { + entry: path, + template: "public/index.html", + title: chunk == "desktop/index" ? "SmartAI" : chunk, + chunks: [chunk_vendor, "chunk-common", chunk] + } + if (chunk != "index") { + pages[chunk].filename = "view/" + chunk + ".html" + } + + pageVendor[chunk_vendor] = { + name: chunk_vendor, + priority: -11, + chunks: (c) => c.name === chunk, + test: /\.js$/, + enforce: true + } + + // pageVendor[chunk_common] = { + // name: chunk_common, + // priority: -20, + // chunks: 'initial', + // minChunks: 2, + // reuseExistingChunk: true, + // enforce: true + // } +}) + +// const serverUrl = "http://192.168.20.189:7009"; +const serverUrl = "http://192.168.20.2:7009" +//const serverUrl = "http://192.168.20.116:7009"; +const iotdataServerUrl = "http://192.168.8.10:9000" + +// const cir = require("circular-dependency-plugin"); + +module.exports = { + pages, + chainWebpack: (config) => { + config.plugins.delete("named-chunks") + if (process.env.NODE_ENV === "production") { + config.output.filename("js/[name].js" + queryStr).end() + config.output.chunkFilename("js/[name].js" + queryStr).end() + // 淇敼鐢熶骇閰嶇疆 + config.plugin("extract-css").tap(() => [ + { + filename: `css/[name].css${queryStr}`, + chunkFilename: `css/[name].css${queryStr}` + } + ]) + } + + config.optimization.splitChunks({ + cacheGroups: pageVendor + }) + + // config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', publicPath: '../' }) + //config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', outputPath: '../' }) + }, + productionSourceMap: false, + filenameHashing: false, + pwa: { + iconPaths: { + favicon32: "favicon.ico", + favicon16: "favicon.ico" + } + }, + devServer: { + proxy: { + "/track": { + target: serverUrl, + // ws: true, + changeOrigin: true + }, + "/ws": { + target: serverUrl, + // ws: true, + changeOrigin: true + }, + // "/data/api-v/app/findAllApp": { + // // target: '/', + // target: "http://localhost:8080/", + // changeOrigin: true, + // pathRewrite: { + // "^/data/api-v/app/findAllApp": "apps.json", + // }, + // }, + "/api-c": { + target: serverUrl, + changeOrigin: true + }, + "/api-v": { + target: serverUrl, + changeOrigin: true + }, + "/api-f": { + target: serverUrl, + // secure: false, + changeOrigin: true + }, + "/api-p": { + target: serverUrl, + // secure: false, + changeOrigin: true + }, + "/api-u": { + target: serverUrl, + changeOrigin: true + }, + "/httpImage": { + target: serverUrl, + changeOrigin: true // 鍥剧墖浠g悊 + }, + "/files": { + target: serverUrl, + changeOrigin: true // 鏂囦欢浠g悊 + }, + "/iotdata": { + target: iotdataServerUrl, + changeOrigin: true // iot鏈嶅姟, + }, + "/version": { + target: serverUrl, + changeOrigin: true // 鐗堟湰妫�鏌�, + } + } + } + // configureWebpack: { + // plugins: [ + // new cir({ + // exclude: /a\.js|node_modules/, + // include: /dir/, + // failOnError: true, + // allowAsyncCycles: false, + // cwd: process.cwd(), + // }), + // ], + // }, + /* css:{ + loaderOptions:{ + scss:{ + prependData:`@import"@/assets/css/globalVariable.scss"` + } + } + } */ +} -- Gitblit v1.8.0