Parcourir la source

chore(dashboard): Tidy up Vite plugins

Michael Bromley il y a 10 mois
Parent
commit
b14bc19081

+ 8 - 25
packages/dashboard/vite.config.ts

@@ -1,31 +1,14 @@
-import { lingui } from '@lingui/vite-plugin';
-import tailwindcss from '@tailwindcss/vite';
-import { TanStackRouterVite } from '@tanstack/router-plugin/vite';
-import react from '@vitejs/plugin-react';
 import path from 'path';
+import { pathToFileURL } from 'url';
 import { defineConfig } from 'vite';
 
-import { adminApiSchemaPlugin } from './vite/vite-plugin-admin-api-schema.js';
+import { vendureDashboardPlugin } from './dist/plugin/index.js';
 
 // https://vite.dev/config/
-export default defineConfig(async () => {
-    const vendureConfig = await import('../dev-server/dev-config.js').then(m => m.devConfig);
-    return {
-        plugins: [
-            TanStackRouterVite({ autoCodeSplitting: true }),
-            react({
-                babel: {
-                    plugins: ['@lingui/babel-plugin-lingui-macro'],
-                },
-            }),
-            lingui(),
-            tailwindcss(),
-            adminApiSchemaPlugin({ config: vendureConfig }),
-        ],
-        resolve: {
-            alias: {
-                '@': path.resolve(__dirname, './src'),
-            },
-        },
-    };
+export default defineConfig({
+    plugins: [
+        vendureDashboardPlugin({
+            vendureConfigPath: pathToFileURL('../dev-server/dev-config.ts'),
+        }),
+    ],
 });

+ 2 - 3
packages/dashboard/vite/vite-plugin-config-loader.ts

@@ -10,9 +10,8 @@ export interface ConfigLoaderApi {
 export const configLoaderName = 'vendure:config-loader';
 
 /**
- * This Vite plugin scans the configured plugins for any dashboard extensions and dynamically
- * generates an import statement for each one, wrapped up in a `runDashboardExtensions()`
- * function which can then be imported and executed in the Dashboard app.
+ * This Vite plugin loads the VendureConfig from the specified file path, and
+ * makes it available to other plugins via the `ConfigLoaderApi`.
  */
 export function configLoaderPlugin(options: ConfigLoaderOptions): Plugin {
     let vendureConfig: VendureConfig;

+ 2 - 0
packages/dashboard/vite/vite-plugin-vendure-dashboard.ts

@@ -1,5 +1,6 @@
 import { lingui } from '@lingui/vite-plugin';
 import tailwindcss from '@tailwindcss/vite';
+import { TanStackRouterVite } from '@tanstack/router-plugin/vite';
 import react from '@vitejs/plugin-react';
 import path from 'path';
 import { PluginOption } from 'vite';
@@ -39,6 +40,7 @@ export function vendureDashboardPlugin(options: VitePluginVendureDashboardOption
     process.env.LINGUI_CONFIG = linguiConfigPath;
     return [
         lingui(),
+        TanStackRouterVite({ autoCodeSplitting: true }),
         react({
             babel: {
                 plugins: ['@lingui/babel-plugin-lingui-macro'],