123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- import path from 'path'
- import { defineConfig } from 'vite'
- import vue from '@vitejs/plugin-vue'
- import WindiCss from 'vite-plugin-windicss'
- import AutoImport from 'unplugin-auto-import/vite'
- import Components from 'unplugin-vue-components/vite'
- import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
- import Icons from 'unplugin-icons/vite'
- import IconsResolver from 'unplugin-icons/resolver'
- import ConditionalCompile from './plugins/vite-plugin-conditional-compile'
- import topLevelAwait from 'vite-plugin-top-level-await'
- import legacy from '@vitejs/plugin-legacy'
- // https://vitejs.dev/config/
- export default defineConfig({
- resolve: {
- alias: {
- '@': path.resolve(__dirname, 'src'),
- '~': path.resolve(__dirname, 'src'),
- // '~components': path.resolve(__dirname, 'src/components'),
- // '~pages': path.resolve(__dirname, 'src/pages'),
- // '~utils': path.resolve(__dirname, 'src/utils'),
- // '~assets': path.resolve(__dirname, 'src/assets'),
- // '~styles': path.resolve(__dirname, 'src/styles'),
- // '~lib': path.resolve(__dirname, 'src/lib'),
- // '~plugins': path.resolve(__dirname, 'src/plugins'),
- // '~router': path.resolve(__dirname, 'src/router'),
- // '~store': path.resolve(__dirname, 'src/store'),
- // '~config': path.resolve(__dirname, 'src/config'),
- // '~api': path.resolve(__dirname, 'src/api'),
- // '~constants': path.resolve(__dirname, 'src/constants'),
- // '~locales': path.resolve(__dirname, 'src/locales'),
- },
- },
- css: {
- preprocessorOptions: {
- scss: {
- additionalData: '@use "./element.scss" as *;',
- },
- },
- },
- plugins: [
- legacy({
- targets: ['defaults', 'ie >= 11', 'chrome 52'], //需要兼容的目标列表,可以设置多个
- additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
- renderLegacyChunks: true,
- polyfills: [
- 'es.symbol',
- 'es.array.filter',
- 'es.promise',
- 'es.promise.finally',
- 'es/map',
- 'es/set',
- 'es.array.for-each',
- 'es.object.define-properties',
- 'es.object.define-property',
- 'es.object.get-own-property-descriptor',
- 'es.object.get-own-property-descriptors',
- 'es.object.keys',
- 'es.object.to-string',
- 'web.dom-collections.for-each',
- 'esnext.global-this',
- 'esnext.string.match-all'
- ]
- }),
- topLevelAwait({
- // The export name of top-level await promise for each chunk module
- promiseExportName: '__tla',
- // The function to generate import names of top-level await promise in each chunk module
- promiseImportName: i => `__tla_${i}`
- }),
- ConditionalCompile(),
- vue({
- reactivityTransform: true,
- }),
- WindiCss(),
- AutoImport({
- // dts: 'src/auto-imports.d.ts',
- imports: ['vue', 'vue/macros', 'vue-router'],
- dirs: [
- 'src/composables',
- // 'src/store',
- 'src/utils',
- ],
- resolvers: [ElementPlusResolver()],
- vueTemplate: true,
- eslintrc: {
- enabled: true,
- // enabled: false, // Default `false`
- // filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
- // globalsPropValue: true, // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
- },
- }),
- Components({
- // dts: 'src/components.d.ts',
- dirs: ['src/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' }), IconsResolver()],
- }),
- Icons({
- compiler: 'vue3',
- autoInstall: true,
- }),
- ],
- server: {
- host: true,
- port: 5230
- },
- build: {
- // rollupOptions: {
- // output: {
- // manualChunks: {
- // axios: ['axios'],
- // },
- // },
- // },
- },
- })
|