Home / Function/ astroScriptsPlugin() — astro Function Reference

astroScriptsPlugin() — astro Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  92b9ba8a_4e5b_92a0_0c91_3d5d109bd557["astroScriptsPlugin()"]
  3add2cbd_84c6_ab3f_c916_c599a116c63a["index.ts"]
  92b9ba8a_4e5b_92a0_0c91_3d5d109bd557 -->|defined in| 3add2cbd_84c6_ab3f_c916_c599a116c63a
  style 92b9ba8a_4e5b_92a0_0c91_3d5d109bd557 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/vite-plugin-scripts/index.ts lines 16–75

export default function astroScriptsPlugin({ settings }: { settings: AstroSettings }): VitePlugin {
	return {
		name: 'astro:scripts',

		resolveId: {
			filter: {
				id: new RegExp(`^${SCRIPT_ID_PREFIX}`),
			},
			handler(id) {
				return id;
			},
		},

		load: {
			filter: {
				id: new RegExp(`^(${BEFORE_HYDRATION_SCRIPT_ID}|${PAGE_SCRIPT_ID}|${PAGE_SSR_SCRIPT_ID})$`),
			},
			handler(id) {
				if (id === BEFORE_HYDRATION_SCRIPT_ID) {
					return {
						code: settings.scripts
							.filter((s) => s.stage === 'before-hydration')
							.map((s) => s.content)
							.join('\n'),
					};
				}
				if (id === PAGE_SCRIPT_ID) {
					return {
						code: settings.scripts
							.filter((s) => s.stage === 'page')
							.map((s) => s.content)
							.join('\n'),
					};
				}
				if (id === PAGE_SSR_SCRIPT_ID) {
					return {
						code: settings.scripts
							.filter((s) => s.stage === 'page-ssr')
							.map((s) => s.content)
							.join('\n'),
					};
				}
			},
		},
		buildStart() {
			const hasHydrationScripts = settings.scripts.some((s) => s.stage === 'before-hydration');
			if (
				hasHydrationScripts &&
				(this.environment.name === ASTRO_VITE_ENVIRONMENT_NAMES.prerender ||
					this.environment.name === ASTRO_VITE_ENVIRONMENT_NAMES.ssr)
			) {
				this.emitFile({
					type: 'chunk',
					id: BEFORE_HYDRATION_SCRIPT_ID,
					name: BEFORE_HYDRATION_SCRIPT_ID,
				});
			}
		},
	};
}

Domain

Subdomains

Frequently Asked Questions

What does astroScriptsPlugin() do?
astroScriptsPlugin() is a function in the astro codebase, defined in packages/astro/src/vite-plugin-scripts/index.ts.
Where is astroScriptsPlugin() defined?
astroScriptsPlugin() is defined in packages/astro/src/vite-plugin-scripts/index.ts at line 16.

Analyze Your Own Codebase

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

Try Supermodel Free