/* 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$/], 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' } });