-
Notifications
You must be signed in to change notification settings - Fork 154
Expand file tree
/
Copy pathvite.config.frontend.js
More file actions
66 lines (63 loc) · 1.9 KB
/
vite.config.frontend.js
File metadata and controls
66 lines (63 loc) · 1.9 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
/**
* As starting point, this is just to build vue runtime, which can be requested for Reader UI #11468
*/
import {defineConfig, rolldownVersion} from 'vite';
import Vue from '@vitejs/plugin-vue';
import path from 'path';
export default defineConfig(({mode}) => {
// its very unclear how the plugin-vue is handling inProduction option
// in any case its still heavily relying on NODE_ENV, thats why its being set
// so for example the devtools support is enabled in development mode
process.env.NODE_ENV = mode;
console.log('rolldownVersion:', rolldownVersion);
return {
plugins: [
Vue({
isProduction: mode === 'production',
}),
],
publicDir: false,
resolve: {
alias: {
'@': path.resolve(__dirname, 'lib/ui-library/src'),
// use vue version with template compiler
vue: 'vue/dist/vue.esm-bundler.js',
},
// https://github.com/vitejs/vite/discussions/15906
dedupe: ['pinia', 'vue'],
},
build: {
sourcemap: mode === 'development' ? 'inline' : false,
target: ['chrome66', 'edge79', 'firefox67', 'safari12'],
emptyOutDir: false,
cssCodeSplit: false,
rolldownOptions: {
input: {
build: './js/load_frontend.js',
},
output: {
format: 'iife', // Set the format to IIFE
entryFileNames: 'js/build_frontend.js',
assetFileNames: (assetInfo) => {
if (!assetInfo.name) {
// Fallback to a default pattern with placeholders (Vite/Rollup will handle [hash] and [ext])
return 'assets/unnamed-[hash].[ext]';
}
const info = assetInfo.name.split('.');
const extType = info[info.length - 1];
if (/\.(css)$/.test(assetInfo.name)) {
return 'styles/build_frontend.css';
}
return `[name].${extType}`;
},
// Provide global variables to use in the UMD build
// for externalized deps
globals: {
vue: 'pkp.Vue',
},
},
},
outDir: path.resolve(__dirname),
},
};
});