-
Notifications
You must be signed in to change notification settings - Fork 19
/
vue.config.js
80 lines (72 loc) · 2.23 KB
/
vue.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const path = require('path')
const veuiLoaderOptions = require('./build/veui-loader.conf')
const resolve = dir => {
return path.join(__dirname, dir)
}
const VEUI_PREFIX = process.env.VEUI_PREFIX || process.env.VUE_APP_VEUI_PREFIX
const vars = {}
module.exports = {
publicPath: '',
outputDir: 'dist',
css: {
loaderOptions: {
less: {
lessOptions: {
javascriptEnabled: true,
modifyVars: {
...vars,
...(VEUI_PREFIX
? {
'veui-prefix': VEUI_PREFIX
}
: {})
}
}
}
}
},
transpileDependencies: [
/[/\\]node_modules[/\\]veui[/\\]/,
/[/\\]node_modules[/\\]vue-awesome[/\\]/,
/[/\\]node_modules[/\\]resize-detector[/\\]/,
],
chainWebpack: config => {
config
.entry('app')
.clear()
.add('./demo/main.js')
config.plugin('html').tap(args => {
args[0].template = './demo/index.html'
return args
})
// config.devtool('source-map')
config.resolve.alias
.set(
'vue$',
process.env.NODE_ENV === 'test'
? 'vue/dist/vue.esm.js'
: 'vue/dist/vue.runtime.esm.js'
)
.set('veui-theme-blue', resolve('src'))
.set('veui-theme-blue-icons', resolve('icons/icons'))
.set('veui-theme-blue-imgs', resolve('icons/assets/images'))
// 压缩空格:https://github.com/vuejs/vue/tree/dev/packages/vue-template-compiler#options
config.module
.rule('vue')
.use('vue-loader')
.tap(options =>
Object.assign({}, options, {
compilerOptions: {
whitespace: 'condense'
}
})
)
config.module
.rule('veui')
.test(/\.vue$/)
.pre()
.use('veui-loader')
.loader('veui-loader')
.tap(() => veuiLoaderOptions)
}
}