vue-learning/企业级管理系统/web/项目源码/vue.config.js

100 lines
3.2 KiB
JavaScript
Raw Normal View History

2022-12-14 10:38:51 +00:00
const path = require("path");
// webpack.config.js
// const ElementPlus = require("unplugin-element-plus/webpack").default;
module.exports = {
// 基本路径
publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
// 输出文件目录
outputDir: process.env.NODE_ENV === "production" ? "dist" : "devdist",
// eslint-loader 是否在保存的时候检查
lintOnSave: false,
/** vue3.0webpack西
* webpack配置,see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
**/
chainWebpack: (config) => {
// svg 图标解析
const svgRule = config.module.rule("svg"); //默认规则赋给 subRule 变量
svgRule.uses.clear(); // 清除已有的所有规则。
svgRule // 添加要替换的规则
.use("svg-sprite-loader")
.loader("svg-sprite-loader")
.options({
symbolId: "icon-[name]",
include: ["./src/components/svgIcon/icon"] // 特别注意的目录路径
});
// 配置base64转换规则
config.module
.rule('images')
.use('url-loader')
.loader('url-loader')
.tap(options => Object.assign(options, { limit: 1 }))
// 载入项目分析工具
// config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
},
configureWebpack: (config) => {
config.resolve = { // 配置解析别名
extensions: ['.js', '.json', '.vue'], // 自动添加文件名后缀
alias: {
'@': path.resolve(__dirname, './src'),
'@u': path.resolve(__dirname, './src/utils'),
'@a': path.resolve(__dirname, './src/api'),
'@c': path.resolve(__dirname, './src/components')
}
}
config.externals = {
vue: "Vue",
"element-plus": "ElementPlus"
}
//关闭 webpack 的性能提示
config.performance = {
hints:false
}
},
// 生产环境是否生成 sourceMap 文件
productionSourceMap: false,
// css相关配置
css: {
// 是否使用css分离插件 ExtractTextPlugin
extract: true,
// 开启 CSS source maps?
sourceMap: false,
// css预设器配置项
loaderOptions: {
scss: {
prependData: `@import "./src/styles/main.scss";`,
},
},
requireModuleExtension: true,
},
// use thread-loader for babel & TS in production build
// enabled by default if the machine has more than 1 cores
parallel: require("os").cpus().length > 1,
/**
* PWA 插件相关配置,see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
*/
pwa: {},
// webpack-dev-server 相关配置
devServer: {
open: false, // 编译完成是否打开网页
host: '0.0.0.0', // 指定使用地址默认localhost,0.0.0.0代表可以被外界访问
port: 8081, // 访问端口
https: false, // 编译失败时刷新页面
hot: true, // 开启热加载
hotOnly: false,
proxy: {
[process.env.VUE_APP_API]: {
target: process.env.VUE_APP_DEV_TARGET, //API服务器的地址 http://www.web-jshtml.cn/api/v3
changeOrigin: true,
pathRewrite: {
[`^${process.env.VUE_APP_API}`]: ''
}
}
}
},
/**
* 第三方插件配置
*/
pluginOptions: {},
};