You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
spring-boot-online-exam/frontend/vue.config.js

126 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

const path = require('path')
const webpack = require('webpack')
// 定义一个函数,用于拼接路径
function resolve (dir) {
return path.join(__dirname, dir)
}
// vue.config.js
module.exports = {
/*
Vue-cli3:
Crashed when using Webpack `import()` #2463
https://github.com/vuejs/vue-cli/issues/2463
*/
/*
pages: {
index: {
entry: 'src/main.js',
chunks: ['chunk-vendors', 'chunk-common', 'index']
}
},
*/
// 配置webpack
configureWebpack: {
plugins: [
// 忽略moment.js的所有locale文件
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
// 提供全局变量
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery'
})
]
},
// 链式调用webpack配置
chainWebpack: (config) => {
// 设置路径别名
// 设置路径别名
config.resolve.alias
// 设置@符号指向src目录
.set('@$', resolve('src'))
// 设置@api符号指向src/api目录
.set('@api', resolve('src/api'))
// 设置@assets符号指向src/assets目录
.set('@assets', resolve('src/assets'))
// 设置@comp符号指向src/components目录
.set('@comp', resolve('src/components'))
// 设置@views符号指向src/views目录
.set('@views', resolve('src/views'))
// 设置@layout符号指向src/layout目录
.set('@layout', resolve('src/layout'))
// 设置@static符号指向src/static目录
.set('@static', resolve('src/static'))
// 设置jquery符号指向node_modules/jquery/src/jquery目录
.set('jquery', resolve('node_modules/jquery/src/jquery'))
// 配置svg规则
// 定义svgRule变量值为config.module.rule('svg')
const svgRule = config.module.rule('svg')
// 清空svgRule的uses
svgRule.uses.clear()
// 定义svgRule的oneOf('inline')匹配resourceQuery(/inline/)使用vue-svg-icon-loader
svgRule
.oneOf('inline')
.resourceQuery(/inline/)
.use('vue-svg-icon-loader')
.loader('vue-svg-icon-loader')
.end()
.end()
// 定义svgRule的oneOf('external')使用file-loader
.oneOf('external')
.use('file-loader')
.loader('file-loader')
// 设置file-loader的options
.options({
name: 'assets/[name].[hash:8].[ext]'
})
/* svgRule.oneOf('inline')
.resourceQuery(/inline/)
.use('vue-svg-loader')
.loader('vue-svg-loader')
.end()
.end()
.oneOf('external')
.use('file-loader')
.loader('file-loader')
.options({
name: 'assets/[name].[hash:8].[ext]'
})
*/
},
// 配置css
css: {
loaderOptions: {
less: {
modifyVars: {
/* less 变量覆盖,用于自定义 ant design 主题 */
/*
'primary-color': '#F5222D',
'link-color': '#F5222D',
'border-radius-base': '4px',
*/
},
javascriptEnabled: true
}
}
},
// 配置开发服务器
devServer: {
// 开发服务器端口
port: 8000,
proxy: 'http://localhost:9527'
},
// 生产环境下禁用source map
productionSourceMap: false,
lintOnSave: undefined,
// babel-loader不忽略node_modules/*
transpileDependencies: []
}