From e28a64a037d8fe2573372ef9803a9cf461b17f86 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 16 May 2025 21:31:57 +0300 Subject: [PATCH] fix(client/vite): handle static assets --- apps/client/package.json | 3 ++- apps/client/vite.config.ts | 12 +++++++++++- pnpm-lock.yaml | 18 ++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/apps/client/package.json b/apps/client/package.json index 773a27a05..c98f45bbc 100644 --- a/apps/client/package.json +++ b/apps/client/package.json @@ -62,7 +62,8 @@ "@types/react-dom": "19.1.5", "copy-webpack-plugin": "13.0.0", "happy-dom": "17.4.7", - "script-loader": "0.7.2" + "script-loader": "0.7.2", + "vite-plugin-static-copy": "3.0.0" }, "nx": { "name": "client" diff --git a/apps/client/vite.config.ts b/apps/client/vite.config.ts index dfc3e6083..83bc0a6fc 100644 --- a/apps/client/vite.config.ts +++ b/apps/client/vite.config.ts @@ -1,6 +1,9 @@ /// import { join } from 'path'; import { defineConfig } from 'vite'; +import { viteStaticCopy } from 'vite-plugin-static-copy' + +const assets = [ "assets", "stylesheets", "libraries", "fonts", "translations" ]; export default defineConfig(() => ({ root: __dirname, @@ -13,7 +16,14 @@ export default defineConfig(() => ({ port: 4300, host: 'localhost', }, - plugins: [], + plugins: [ + viteStaticCopy({ + targets: assets.map((asset) => ({ + src: `src/${asset}/**/*`, + dest: asset + })) + }) + ], // Uncomment this if you are using workers. // worker: { // plugins: [ nxViteTsPaths() ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 22b41930c..0b000f917 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -321,6 +321,9 @@ importers: script-loader: specifier: 0.7.2 version: 0.7.2 + vite-plugin-static-copy: + specifier: 3.0.0 + version: 3.0.0(vite@6.3.5(@types/node@22.15.18)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)) apps/db-compare: dependencies: @@ -13750,6 +13753,12 @@ packages: vite: optional: true + vite-plugin-static-copy@3.0.0: + resolution: {integrity: sha512-Uki9pPUQ4ZnoMEdIFabvoh9h6Bh9Q1m3iF7BrZvoiF30reREpJh2gZb4jOnW1/uYFzyRiLCmFSkM+8hwiq1vWQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vite-plugin-svgo@2.0.0: resolution: {integrity: sha512-WaiOUlmt1fKw1w/WWJnx9gVk42D1BASKZmGCPpy6iTLE5iIemN2lim3MwI7Rffyt3aQnPrLfLSLnI8ZUJ9s49g==} peerDependencies: @@ -30072,6 +30081,15 @@ snapshots: - rollup - supports-color + vite-plugin-static-copy@3.0.0(vite@6.3.5(@types/node@22.15.18)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)): + dependencies: + chokidar: 3.6.0 + fs-extra: 11.3.0 + p-map: 7.0.3 + picocolors: 1.1.1 + tinyglobby: 0.2.13 + vite: 6.3.5(@types/node@22.15.18)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1) + vite-plugin-svgo@2.0.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.18)(jiti@2.4.2)(less@4.1.3)(sass-embedded@1.87.0)(sass@1.87.0)(stylus@0.64.0)(sugarss@4.0.1(postcss@8.5.3))(terser@5.39.0)(tsx@4.19.4)(yaml@2.7.1)): dependencies: svgo: 3.3.2