| | |
| | | "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 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"`
|
| | | }
|
| | | }
|
| | | } */
|
| | | };
|