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