vite.config.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. build: {},
  14. plugins: [
  15. WindiCSS(),
  16. linaria({
  17. include: ["**/*.{ts,tsx}"],
  18. sourceMap: process.env.NODE_ENV !== "production",
  19. babelOptions: {
  20. presets: ["@babel/preset-typescript"],
  21. },
  22. }),
  23. // css({
  24. // output: (
  25. // styles: string,
  26. // styleNodes: Record<string, string>,
  27. // bundle: any
  28. // ) => {
  29. // console.log(bundle);
  30. // return "style.css";
  31. // },
  32. // }),
  33. Components({
  34. resolvers: [
  35. AntDesignVueResolver({
  36. // importLess: true
  37. }),
  38. ],
  39. }),
  40. vue(),
  41. vueJsx(),
  42. ],
  43. esbuild: {
  44. include: ["./src/**/*.tsx"],
  45. jsxInject: `import { getImageUrl } from '@/utils'`,
  46. },
  47. css: {
  48. preprocessorOptions: {
  49. less: {
  50. javascriptEnabled: true,
  51. },
  52. },
  53. },
  54. resolve: {
  55. alias: {
  56. "@": fileURLToPath(new URL("./src", import.meta.url)),
  57. },
  58. },
  59. });