const path = require('path') const resolve = (dir) => { return path.join(__dirname, dir) } const CompressionPlugin = require('compression-webpack-plugin') const name = process.env.VUE_APP_TITLE || '智慧工地可视化系统' const port = process.env.port || process.env.npm_config_port || 80 module.exports = { // publicPath: './', transpileDependencies: [], publicPath: process.env.VUE_APP_ENV === 'production' ? '/smartSiteScreen' : '/', outputDir: 'dist', assetsDir: 'static', // 是否开启eslint保存检测,有效值:ture | false | 'error' lintOnSave: process.env.NODE_ENV === 'development', // chainWebpack: (config) => { // config.resolve.alias.set('_c', resolve('src/components')) // key,value自行定义,比如.set('@@', resolve('src/components')) // }, devServer: { host: '0.0.0.0', port: port, open: true, proxy: { [process.env.VUE_APP_BASE_API]: { target: 'http://192.168.0.60:38080', // 赵福海 changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '', }, }, }, // disableHostCheck: true, }, configureWebpack: { name: name, resolve: { alias: { '@': resolve('src'), }, }, plugins: [ // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件 new CompressionPlugin({ cache: false, // 不启用文件缓存 test: /\.(js|css|html)?$/i, // 压缩文件格式 filename: '[path].gz[query]', // 压缩后的文件名 algorithm: 'gzip', // 使用gzip压缩 minRatio: 0.8, // 压缩率小于1才会压缩 }), ], }, css: { loaderOptions: { sass: { sassOptions: { outputStyle: 'expanded' }, }, }, }, }