vite.config.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import react from "@vitejs/plugin-react";
  2. import { defineConfig } from "vite";
  3. import checker from "vite-plugin-checker";
  4. import tsconfigPaths from "vite-tsconfig-paths";
  5. import "vitest/config";
  6. import { execFile } from "node:child_process";
  7. // https://vitejs.dev/config/
  8. export default defineConfig({
  9. plugins: [
  10. {
  11. name: "trigger-script-on-reload",
  12. configureServer(server) {
  13. server.watcher.on("change", (file) => {
  14. if (file.includes("locale/src")) {
  15. console.log(`File changed: ${file}, running locale-compile script...`);
  16. execFile("yarn", ["locale-compile"], (error, stdout, _stderr) => {
  17. if (error) {
  18. throw error;
  19. }
  20. console.log(stdout);
  21. execFile("yarn", ["locale-sort"], (error, stdout, _stderr) => {
  22. if (error) {
  23. throw error;
  24. }
  25. console.log(stdout);
  26. });
  27. });
  28. }
  29. });
  30. },
  31. },
  32. react(),
  33. checker({
  34. // e.g. use TypeScript check
  35. typescript: true,
  36. }),
  37. tsconfigPaths(),
  38. ],
  39. server: {
  40. host: true,
  41. port: 5173,
  42. strictPort: true,
  43. allowedHosts: true,
  44. },
  45. test: {
  46. environment: "happy-dom",
  47. setupFiles: ["./vitest-setup.js"],
  48. },
  49. assetsInclude: ["**/*.md", "**/*.png", "**/*.svg"],
  50. });