riku
2024-11-04 069da66fbe2748d51b1f3bc63f9ae00e660083c6
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
/* eslint-disable no-undef */
// import { fileURLToPath, URL } from 'node:url'
import autoprefixer from 'autoprefixer';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';
 
// import ElementPlus from 'unplugin-element-plus/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
 
const pathSrc = path.resolve(__dirname, 'src');
 
// https://vitejs.dev/config/
export default defineConfig({
  base: './',
  plugins: [
    vue(),
    Components({
      // allow auto load markdown components under `./src/components/`
      extensions: ['vue', 'md'],
      // allow auto import and register components used in markdown
      include: [/\.vue$/, /\.vue\?vue/, /\.md$/, /\.ts$/],
      resolvers: [
        ElementPlusResolver({
          importStyle: 'sass'
        }),
      ],
      dts: 'src/components.d.ts',
    }),
    // ElementPlus({
    //   useSource: true,
    // }),
  ],
  resolve: {
    // alias: {
    // '@': fileURLToPath(new URL('./src', import.meta.url)),
    // '@/': `${path.resolve(__dirname, 'src')}/`,
    // '~': '',
    // },
    // extensions: ['.js', '.mjs', '.vue', '.json', '.less', '.css'],
 
    alias: [
      { find: /^@\//, replacement: `${pathSrc}/` },
      { find: /^~/, replacement: `` },
    ],
    // extensions: ['.js', '.mjs', '.vue', '.json', '.less', '.css']
  },
  build: {
    sourcemap: false,
    rollupOptions: {
      input: path.resolve(__dirname, 'index.html'),
      output: {
        chunkFileNames: 'js/[name].[hash].js',
        entryFileNames: 'js/[name].[hash].js',
        // assetFileNames: "assets/[name].[hash].[ext]",
      },
    },
  },
  css: {
    postcss: {
      plugins: [autoprefixer],
    },
    preprocessorOptions: {
      // less: {
      //   javascriptEnabled: true,
      //   additionalData: `@import "${path.resolve(__dirname, 'src/styles/variable.less')}";`
      // },
      scss: {
        additionalData: `@use "@/styles/element/index.scss" as *;`,
      },
    },
  },
  server: {
    host: '0.0.0.0'
  }
});