|
| 1 | +// packages/platform-ui/vite-env-plugin.js |
| 2 | +export default function injectEnvPlugin() { |
| 3 | + // Store the config for use in transformIndexHtml |
| 4 | + let configEnv = {}; |
| 5 | + |
| 6 | + return { |
| 7 | + name: 'inject-env', |
| 8 | + configResolved(config) { |
| 9 | + // Store the resolved config for use in transformIndexHtml |
| 10 | + configEnv = config.env; |
| 11 | + console.log('Vite config ENV stored:', configEnv); |
| 12 | + }, |
| 13 | + transformIndexHtml(html) { |
| 14 | + console.log('Transform HTML running with configEnv:', configEnv); |
| 15 | + |
| 16 | + // Extract relevant environment variables |
| 17 | + const envVars = { |
| 18 | + COUCHDB_SERVER_URL: configEnv.VITE_COUCHDB_SERVER || 'injected-server:5984/', |
| 19 | + COUCHDB_SERVER_PROTOCOL: configEnv.VITE_COUCHDB_PROTOCOL || 'http', |
| 20 | + EXPRESS_SERVER_URL: configEnv.VITE_EXPRESS_SERVER || 'injected-express:3000/', |
| 21 | + EXPRESS_SERVER_PROTOCOL: configEnv.VITE_EXPRESS_PROTOCOL || 'http', |
| 22 | + DEBUG: configEnv.VITE_DEBUG === 'true', |
| 23 | + MOCK: configEnv.VITE_MOCK === 'true', |
| 24 | + }; |
| 25 | + |
| 26 | + console.log('Injecting ENV vars:', envVars); |
| 27 | + |
| 28 | + // Create the script tag to inject at build time |
| 29 | + return { |
| 30 | + html, |
| 31 | + tags: [ |
| 32 | + { |
| 33 | + tag: 'script', |
| 34 | + attrs: { type: 'text/javascript' }, |
| 35 | + children: `console.log("ENV injection running"); window.__SKUILDER_ENV__ = ${JSON.stringify( |
| 36 | + envVars |
| 37 | + )};`, |
| 38 | + injectTo: 'head-prepend', |
| 39 | + }, |
| 40 | + ], |
| 41 | + }; |
| 42 | + }, |
| 43 | + }; |
| 44 | +} |
0 commit comments