let path = require("path"); const webpack = require("webpack"); const ThemeColorReplacer = require("webpack-theme-color-replacer"); const { getThemeColors, modifyVars } = require("./src/utils/themeUtil"); const { resolveCss } = require("./src/utils/theme-color-replacer-extend"); const CompressionWebpackPlugin = require("compression-webpack-plugin"); const productionGzipExtensions = ["js", "css"]; // const isDev = process.env.NODE_ENV === "development"; const FileManagerPlugin = require("filemanager-webpack-plugin"); // 压缩文件夹 const assetsCDN = { // webpack build externals // externals: { // vue: 'Vue', // 'vue-router': 'VueRouter', // vuex: 'Vuex', // axios: 'axios', // nprogress: 'NProgress', // clipboard: 'ClipboardJS', // '@antv/data-set': 'DataSet', // 'js-cookie': 'Cookies' // }, css: [], js: [ "//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js", "//cdn.jsdelivr.net/npm/vue-router@3.3.4/dist/vue-router.min.js", "//cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js", "//cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js", "//cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js", "//cdn.jsdelivr.net/npm/clipboard@2.0.6/dist/clipboard.min.js", "//cdn.jsdelivr.net/npm/@antv/data-set@0.11.4/build/data-set.min.js", "//cdn.jsdelivr.net/npm/js-cookie@2.2.1/src/js.cookie.min.js", ], }; const BundleAnalyzerPlugin = require("webpack-bundle-analyzer") .BundleAnalyzerPlugin; module.exports = { devServer: { disableHostCheck: true, port: 8080, proxy: { "/api": { //此处要与 /services/api.js 中的 API_PROXY_PREFIX 值保持一致 target: process.env.VUE_APP_API_BASE_URL, changeOrigin: true, pathRewrite: { "^/api": "", }, // cookieDomainRewrite: 'localhost', }, }, }, pluginOptions: { "style-resources-loader": { preProcessor: "less", patterns: [path.resolve(__dirname, "./src/theme/theme.less")], }, }, configureWebpack: { plugins: [ //富文本改变图片大小插件 new webpack.ProvidePlugin({ "window.Quill": "quill/dist/quill.js", Quill: "quill/dist/quill.js", }), // 生产环境打包zip文件 new FileManagerPlugin({ events: { onEnd: { mkdir: ["./dist"], delete: ["./dist.zip"], archive: [{ source: "./dist", destination: "./dist.zip" }], }, }, }), ], }, css: { loaderOptions: { less: { lessOptions: { modifyVars: modifyVars(), javascriptEnabled: true, }, }, }, }, publicPath: "./", // publicPath: process.env.VUE_APP_PUBLIC_PATH, outputDir: "dist", assetsDir: "static", productionSourceMap: false, };