Passed
Push — develop ( 145942...6c0fd5 )
by Andrew
11:25
created

buildchain/vite.config.ts   A

Complexity

Total Complexity 1
Complexity/F 0

Size

Lines of Code 78
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 58
c 0
b 0
f 0
dl 0
loc 78
rs 10
mnd 1
bc 1
fnc 0
bpm 0
cpm 0
noi 0
1
import {defineConfig} from 'vite';
2
import {createVuePlugin} from 'vite-plugin-vue2'
3
import ViteRestart from 'vite-plugin-restart';
4
import {viteExternalsPlugin} from 'vite-plugin-externals'
5
import viteCompression from 'vite-plugin-compression';
6
import manifestSRI from 'vite-plugin-manifest-sri';
7
import {visualizer} from 'rollup-plugin-visualizer';
8
import eslintPlugin from 'vite-plugin-eslint';
9
import {nodeResolve} from '@rollup/plugin-node-resolve';
10
import * as path from 'path';
11
12
// https://vitejs.dev/config/
13
export default defineConfig(({command}) => ({
14
  base: command === 'serve' ? '' : '/dist/',
15
  build: {
16
    emptyOutDir: true,
17
    manifest: true,
18
    outDir: '../src/web/assets/dist',
19
    rollupOptions: {
20
      input: {
21
        'dashboard': 'src/js/Dashboard.js',
22
        'import': 'src/js/Import.js',
23
        'redirects': 'src/js/Redirects.js',
24
        'retour': 'src/js/Retour.js',
25
        'widget': 'src/js/Widget.js'
26
      },
27
      output: {
28
        sourcemap: true
29
      },
30
    }
31
  },
32
  plugins: [
33
    nodeResolve({
34
      moduleDirectories: [
35
        path.resolve('./node_modules'),
36
      ],
37
    }),
38
    ViteRestart({
39
      reload: [
40
        './src/templates/**/*',
41
      ],
42
    }),
43
    createVuePlugin(),
44
    viteExternalsPlugin({
45
      'vue': 'Vue',
46
    }),
47
    viteCompression({
48
      filter: /\.(js|mjs|json|css|map)$/i
49
    }),
50
    manifestSRI(),
51
    visualizer({
52
      filename: '../src/web/assets/dist/stats.html',
53
      template: 'treemap',
54
      sourcemap: true,
55
    }),
56
    eslintPlugin({
57
      cache: false,
58
    }),
59
  ],
60
  publicDir: '../src/web/assets/public',
61
  resolve: {
62
    alias: {
63
      '@': path.resolve(__dirname, './src'),
64
      'vue': 'vue/dist/vue.esm.js',
65
    },
66
    preserveSymlinks: true,
67
  },
68
  server: {
69
    fs: {
70
      strict: false
71
    },
72
    host: '0.0.0.0',
73
    origin: 'http://localhost:3001/',
74
    port: 3001,
75
    strictPort: true,
76
  }
77
}));
78