Files
lilishop-ui/im/vue.config.js
lifenlong 832fda813b 升级Vue3,iView替换ElementPlus
- 删除babel配置、更新依赖与入口初始化
- 全量替换UI组件、样式适配,新增迁移文档与标签/过滤器自动化替换脚本
2026-06-05 17:49:43 +08:00

97 lines
2.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const path = require('path')
// compression-webpack-plugin添加压缩文件类型
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']
const isProd = process.env.NODE_ENV === 'production'
function resolve(dir) {
return path.join(__dirname, dir)
}
// vue.config.js
const vueConfig = {
// 公共路径(必须有的)
publicPath: '/',
// 输出文件目录
outputDir: 'dist',
// 静态资源存放的文件夹(相对于ouputDir)
assetsDir: 'static',
runtimeCompiler: false,
devServer: {
port: 8000,
// proxy: {
// //配置跨域
// '/api': {
// target: 'http://api.xxxx.com', // 后台接口域名
// ws: false, //如果要代理 websockets配置这个参数
// secure: false, // 如果是https接口需要配置这个参数
// changeOrigin: true, //是否跨域
// pathRewrite: {
// '^/api': '/api',
// },
// },
// },
},
configureWebpack: {
// webpack plugins
plugins: [
// 配置大文件压缩相关参数
new CompressionWebpackPlugin({
filename: '[path][base].gz',
algorithm: 'gzip',
test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
threshold: 10240,
minRatio: 0.8,
}),
],
},
chainWebpack: config => {
config.resolve.alias.set('@', resolve('src'))
config.module.rule('svg').exclude.add(resolve('src/icons/svg')).end()
config.module
.rule('icons')
.test(/\.svg$/)
.include.add(resolve('src/icons/svg'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]',
})
},
pluginOptions: {
'style-resources-loader': {
preProcessor: 'less',
patterns: [
//全局加载 less 变量
path.resolve(__dirname, './src/assets/css/variable.less'),
],
},
},
css: {
loaderOptions: {
less: {
lessOptions: {
modifyVars: {},
javascriptEnabled: true,
},
},
},
},
// 是否为生产环境构建生成 source map
productionSourceMap: false,
// lintOnSave: undefined,
lintOnSave: false,
// babel-loader no-ignore node_modules/*
transpileDependencies: [],
}
module.exports = vueConfig