Home / Function/ configEnvironmentPlugin() — astro Function Reference

configEnvironmentPlugin() — astro Function Reference

Architecture documentation for the configEnvironmentPlugin() function in index.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  ba0d20ce_c876_15aa_b0c7_59ee8fbf99e7["configEnvironmentPlugin()"]
  eecbb2c4_1cf9_b32b_f41f_438a6587b783["index.ts"]
  ba0d20ce_c876_15aa_b0c7_59ee8fbf99e7 -->|defined in| eecbb2c4_1cf9_b32b_f41f_438a6587b783
  3505419d_39da_09ce_a027_e46d2f0fcbb5["getViteConfiguration()"]
  3505419d_39da_09ce_a027_e46d2f0fcbb5 -->|calls| ba0d20ce_c876_15aa_b0c7_59ee8fbf99e7
  style ba0d20ce_c876_15aa_b0c7_59ee8fbf99e7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/integrations/react/src/index.ts lines 100–146

function configEnvironmentPlugin(reactConfig: ReactVersionConfig): vite.Plugin {
	return {
		name: '@astrojs/react:environment',
		configEnvironment(environmentName, options): EnvironmentOptions {
			const finalOptions: EnvironmentOptions = {
				resolve: {
					dedupe: ['react', 'react-dom'],
				},
				optimizeDeps: {},
			};

			if (
				environmentName === 'client' ||
				((environmentName === 'ssr' || environmentName === 'prerender') &&
					options.optimizeDeps?.noDiscovery === false)
			) {
				// SAFETY: we initialized it before
				finalOptions.optimizeDeps!.include = [
					'react',
					'react/jsx-runtime',
					'react/jsx-dev-runtime',
					'react-dom',
				];
				finalOptions.optimizeDeps!.exclude = [reactConfig.server];
				if (environmentName === 'ssr' || environmentName === 'prerender') {
					finalOptions.optimizeDeps!.include.push('react-dom/server');
					if (!options.resolve?.noExternal) {
						finalOptions.resolve!.noExternal = [
							// These are all needed to get mui to work.
							'@mui/material',
							'@mui/base',
							'@babel/runtime',
							'use-immer',
							'@material-tailwind/react',
						];
					}
				}
				if (environmentName === 'client') {
					finalOptions.optimizeDeps!.include.push('react-dom/client');
					finalOptions.optimizeDeps!.include.push(reactConfig.client);
				}
			}

			return finalOptions;
		},
	};
}

Domain

Subdomains

Frequently Asked Questions

What does configEnvironmentPlugin() do?
configEnvironmentPlugin() is a function in the astro codebase, defined in packages/integrations/react/src/index.ts.
Where is configEnvironmentPlugin() defined?
configEnvironmentPlugin() is defined in packages/integrations/react/src/index.ts at line 100.
What calls configEnvironmentPlugin()?
configEnvironmentPlugin() is called by 1 function(s): getViteConfiguration.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free