vite.config.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { defineConfig, normalizePath } from "vite";
  2. import { fileURLToPath, URL } from "node:url";
  3. import vue from "@vitejs/plugin-vue";
  4. import vueJsx from "@vitejs/plugin-vue-jsx";
  5. import linaria from "@linaria/rollup";
  6. import css from "rollup-plugin-css-only";
  7. import WindiCSS from "vite-plugin-windicss";
  8. import Components from "unplugin-vue-components/vite";
  9. import { AntDesignVueResolver } from "unplugin-vue-components/resolvers";
  10. // https://vitejs.dev/config/
  11. export default defineConfig({
  12. base: process.env.NODE_ENV == "production" ? "./" : "./",
  13. plugins: [
  14. WindiCSS(),
  15. linaria({
  16. include: ["**/*.{ts,tsx}"],
  17. sourceMap: process.env.NODE_ENV !== "production",
  18. babelOptions: {
  19. presets: ["@babel/preset-typescript"],
  20. },
  21. }),
  22. // css({
  23. // output: (
  24. // styles: string,
  25. // styleNodes: Record<string, string>,
  26. // bundle: any
  27. // ) => {
  28. // console.log(bundle);
  29. // return "style.css";
  30. // },
  31. // }),
  32. Components({
  33. resolvers: [
  34. AntDesignVueResolver({
  35. // importLess: true
  36. }),
  37. ],
  38. }),
  39. vue(),
  40. vueJsx(),
  41. ],
  42. esbuild: {
  43. include: ["./src/**/*.tsx"],
  44. jsxInject: `import { getImageUrl } from '@/utils'`,
  45. },
  46. css: {
  47. preprocessorOptions: {
  48. less: {
  49. javascriptEnabled: true,
  50. },
  51. },
  52. },
  53. resolve: {
  54. alias: {
  55. "@": fileURLToPath(new URL("./src", import.meta.url)),
  56. },
  57. },
  58. });