vite.config.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import path from 'path'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import vueJsx from '@vitejs/plugin-vue-jsx'
  5. import AutoImport from 'unplugin-auto-import/vite'
  6. import Components from 'unplugin-vue-components/vite'
  7. import Icons from 'unplugin-icons/vite'
  8. import deletePlugin from 'rollup-plugin-delete'
  9. // import basicSsl from '@vitejs/plugin-basic-ssl'
  10. import Unocss from 'unocss/vite'
  11. import { presetUno, presetAttributify, presetIcons } from 'unocss'
  12. import { PrimeVueResolver } from '@primevue/auto-import-resolver'
  13. // https://vitejs.dev/config/
  14. export default ({ mode, command }) => {
  15. // const env = loadEnv(mode, process.cwd())
  16. return defineConfig({
  17. base: '/background/',
  18. build: {
  19. outDir: 'dist',
  20. sourcemap: false,
  21. minify: true,
  22. emptyOutDir: true,
  23. rollupOptions: {
  24. output: {
  25. chunkFileNames: 'js/[hash].js',
  26. entryFileNames: 'js/[hash].js',
  27. assetFileNames: (assetsFile) => {
  28. if (/\.(vue|scss)$/i.test(assetsFile.name)) {
  29. return 'del/[name]-[hash].[ext]'
  30. } else {
  31. return 'static/[hash].[ext]'
  32. }
  33. }
  34. }
  35. }
  36. },
  37. plugins: [
  38. vue(),
  39. vueJsx(),
  40. // basicSsl(),
  41. Unocss({}),
  42. AutoImport({
  43. imports: [
  44. 'vue',
  45. 'vue-router',
  46. 'pinia',
  47. '@vueuse/core',
  48. {
  49. '@/api': ['useRequest']
  50. },
  51. {
  52. '@/locales': ['useI18n', 'locale']
  53. }
  54. ],
  55. eslintrc: {
  56. enabled: false, // Default `false`
  57. filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
  58. globalsPropValue: true // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
  59. }
  60. }),
  61. Components({
  62. dirs: ['src/components'],
  63. dts: false,
  64. resolvers: [PrimeVueResolver()],
  65. include: [/\.vue$/, /\.vue\?vue/, /\.jsx$/]
  66. }),
  67. Icons({
  68. compiler: 'vue3'
  69. }),
  70. deletePlugin({
  71. targets: ['dist/del'],
  72. hook: 'writeBundle'
  73. })
  74. ],
  75. resolve: {
  76. alias: {
  77. '@': path.resolve(__dirname, 'src'),
  78. assets: path.resolve(__dirname, 'src/assets'),
  79. util: path.resolve(__dirname, 'src/util'),
  80. views: path.resolve(__dirname, 'src/views'),
  81. layout: path.resolve(__dirname, 'src/layout'),
  82. 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
  83. }
  84. },
  85. preprocessorOptions: {
  86. scss: {
  87. // additionalData: `@import "@/assets/base.scss";`
  88. }
  89. },
  90. define: {
  91. __DEV__: mode === 'development',
  92. __TEST__: mode === 'test'
  93. }
  94. // server:{
  95. // proxy:{
  96. // '/alarm':{
  97. // target: 'https://127.0.0.1',
  98. // changeOrigin: true,
  99. // rewrite: (path) => path.replace(/^api/, ''),
  100. // }
  101. // }
  102. // }
  103. })
  104. }