const { defineConfig } = require("@vue/cli-service"); const path = require("path"); const webpack = require("webpack"); const CompressionWebpackPlugin = require("compression-webpack-plugin"); function resolve(dir) { return path.join(__dirname, dir); } module.exports = defineConfig({ transpileDependencies: true, pages: { index: { // page 的入口 entry: "src/main.js", // 模板来源 template: "public/index.html", // 在 dist/index.html 的输出 filename: "index.html", // 当使用 title 选项时, // template 中的 title 标签需要是 <%= htmlWebpackPlugin.options.title %> title: "青浦区“一张图”区级节点", // 在这个页面中包含的块,默认情况下会包含 // 提取出来的通用 chunk 和 vendor chunk。 chunks: ["chunk-vendors", "chunk-common", "index"], }, }, // ...other config configureWebpack: (config) => { config.performance = { hints: "warning", //入口起点的最大体积 整数类型(以字节为单位) maxEntrypointSize: 50000000, //生成文件的最大体积 整数类型(以字节为单位 300k) maxAssetSize: 30000000, //只给出 js 文件的性能提示 assetFilter: function (assetFilename) { return assetFilename.endsWith(".js"); }, }; const plugins = []; // 同externals一样,我们只想在生产环境下生成gzip即可 if (process.env.NODE_ENV === "production") { plugins.push( new CompressionWebpackPlugin({ filename: "[path][base].gz[query]", // 生成的文件名 algorithm: "gzip", // 类型 test: new RegExp("\\.(js|css)$"), // 匹配规则 threshold: 10240, // 字节数 只处理比这个大的资源 minRatio: 0.8, // 压缩率 只有比这个小的才会处理 // 是否删除源文件,默认: false deleteOriginalAssets: false, }) ); } config.plugins = [...config.plugins, ...plugins]; // 增加加载 .geojson 文件的规则 let rules = [ { test: /\.geojson$/, loader: "json-loader", }, ]; config.module.rules = [...config.module.rules, ...rules]; }, productionSourceMap: false, //打包不生成js.map文件 chainWebpack: (config) => { config.resolve.alias.set("@$", resolve("src")).set("@static", resolve("public/static")); }, devServer: { port: 2027, client: { overlay: false, }, proxy: { "/proxy_oauth/": { target: "http://121.43.55.7:10086/oauth", changeOrigin: true, pathRewrite: { "^/proxy_oauth": "", }, }, "/proxy_dms/": { target: "http://121.43.55.7:10081/dms", changeOrigin: true, pathRewrite: { "^/proxy_dms": "", }, }, "/oneMap/": { // 本地环境 // target: 'http://127.0.0.1:10099/qpyzt', // 线上环境 target: "http://121.43.55.7:13901/qpyzt", changeOrigin: true, pathRewrite: { "^/oneMap": "", }, }, }, }, });