-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvue.config.js
77 lines (71 loc) · 2.21 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
const { defineConfig } = require('@vue/cli-service')
const { resolve } = require('path')
const { readFileSync } = require('fs')
const KintoneUploaderWebpackPlugin = require('./webpackPlugins/kintoneUploader')
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
const url = process.env.BASE_URL
const user = process.env.USER_NAME
const password = process.env.PASSWORD
const outputDir = resolve(__dirname, 'dist/js')
const envOptions = {
url,
user,
password,
outputDir,
}
module.exports = defineConfig({
devServer: {
webSocketServer: false,
https: {
key: readFileSync(resolve(__dirname, './sslKey/localhost+2-key.pem')),
cert: readFileSync(resolve(__dirname, './sslKey/localhost+2.pem')),
},
},
filenameHashing: false,
// transpileDependencies: true,
productionSourceMap: false,
css: {
extract: false,
},
//todo 需要判断是否是否是production
chainWebpack: (config) => {
//无需构建html静态资源
config.plugins.delete('html')
config.plugins.delete('preload')
config.plugins.delete('prefetch')
//svg, fonts 等资源以base64编码后,以内联资源方式引入。
const svgRule = config.module.rule('svg')
svgRule.set('generator', {})
svgRule.set('type', 'asset/inline').end()
const fontsRule = config.module.rule('fonts')
fontsRule.set('generator', {})
fontsRule.set('type', 'asset/inline').end()
if (process.env.NODE_ENV === 'production') {
config.plugin('kintoneUploader').use(KintoneUploaderWebpackPlugin, [envOptions])
}
},
configureWebpack: {
//如果不需要chunk,打包成一个文件的话,添加以下配置
// optimization: {
// splitChunks: false,
// },
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
_v: resolve(__dirname, 'src/views'),
'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js',
},
},
plugins: [
AutoImport({
imports: ['vue', 'pinia'],
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
],
},
})