-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvue.config.js
More file actions
79 lines (76 loc) · 2.01 KB
/
vue.config.js
File metadata and controls
79 lines (76 loc) · 2.01 KB
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
// vue.config.js
const { defineConfig } = require('@vue/cli-service')
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')
// Determine which app to build based on environment variable
const buildTarget = process.env.BUILD_TARGET || 'ide'
// Multi-page configuration for admin panel
const pagesConfig = buildTarget === 'admin' ? {
// Admin Panel Build
admin: {
entry: 'src/admin/main.js',
template: 'public/admin.html',
filename: 'templates/index.html',
title: 'Admin Panel - Python IDE',
chunks: ['chunk-vendors', 'chunk-common', 'admin']
}
} : {
// Main IDE Build (default)
index: {
entry: 'src/main.js',
template: 'public/index.html',
filename: 'templates/index.html',
title: 'Python Web IDE',
chunks: ['chunk-vendors', 'chunk-common', 'index']
}
}
module.exports = defineConfig({
publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
outputDir: 'dist',
assetsDir: 'static',
productionSourceMap: false,
pages: pagesConfig,
devServer: {
client: {
webSocketURL: {
hostname: 'localhost',
pathname: '/ws-dev',
port: 8080,
protocol: 'ws'
}
},
proxy: {
'/api': {
target: 'http://localhost:10086',
changeOrigin: true,
ws: false
},
'/ide-ws': {
target: 'ws://localhost:10086',
changeOrigin: true,
ws: true,
pathRewrite: {
'^/ide-ws': '/ws'
}
}
}
},
css: {
extract: true,
sourceMap: false
},
transpileDependencies: ['pdfjs-dist'],
configureWebpack: {
plugins: [
AutoImport({
resolvers: [ElementPlusResolver({importStyle: false})],
}),
Components({
resolvers: [ElementPlusResolver({importStyle: false})],
}),
new NodePolyfillPlugin(),
],
},
})