forked from Vuepic/vue-datepicker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
55 lines (53 loc) · 1.57 KB
/
vite.config.ts
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
import { fileURLToPath, URL } from 'url';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import minimist from 'minimist';
const { f } = minimist(process.argv.slice(2));
function removeDataTestAttrs(node: any) {
if (node.type === 1) {
node.props = node.props.filter((prop: any) => {
if (prop.name === 'data-test') return false;
return !(prop.name === 'bind' && prop.arg && prop.arg.content && prop.arg.content === 'data-test');
});
}
}
export default defineConfig({
plugins: [
vue({
template: {
compilerOptions: {
nodeTransforms: process.env.NODE_ENV === 'production' ? [removeDataTestAttrs] : [],
},
},
}),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src/VueDatePicker', import.meta.url)),
},
},
server: {
host: true,
port: 8080,
},
build: {
emptyOutDir: false,
lib: {
formats: f === 'iife' ? ['iife'] : ['es', 'umd'],
entry: resolve(__dirname, 'src', 'entry.ts'),
name: 'VueDatePicker',
fileName: 'vue-datepicker',
},
rollupOptions: {
external: f === 'iife' ? ['vue'] : ['vue', 'date-fns', 'date-fns-tz'],
output: {
globals: {
vue: 'Vue',
'date-fns': 'dateFns',
'date-fns-tz': 'dateFnsTz',
},
},
},
},
});