From 4d341415a2411e5a0d67e3739fca255bc0dade3c Mon Sep 17 00:00:00 2001 From: tsukiyama-3 Date: Mon, 11 May 2026 01:57:22 +0900 Subject: [PATCH] fix(module): validate required registry fields after runtime merge --- packages/script/src/module.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/script/src/module.ts b/packages/script/src/module.ts index 1d565209..1dd92079 100644 --- a/packages/script/src/module.ts +++ b/packages/script/src/module.ts @@ -665,7 +665,20 @@ export default defineNuxtModule({ const willAutoLoad = scriptOptions && 'trigger' in scriptOptions && scriptOptions.trigger !== false if (willAutoLoad) { const requiredFields = extractRequiredFields(script.schema) - const missing = requiredFields.filter(f => !input[f]) + + const publicScripts = (nuxt.options.runtimeConfig.public?.scripts ?? {}) as Record> + const publicScriptEntry = publicScripts[key] + const effectiveInput: Record + = publicScriptEntry + && typeof publicScriptEntry === 'object' + && !Array.isArray(publicScriptEntry) + ? Object.fromEntries( + Object.entries(publicScriptEntry).filter(([prop]) => prop !== 'scriptOptions'), + ) + : input + + const missing = requiredFields.filter(f => !effectiveInput[f]) + if (missing.length) { logger.warn(`[nuxt-scripts] registry.${key}: missing required field${missing.length > 1 ? 's' : ''} ${missing.map(f => `'${f}'`).join(', ')}. The script infrastructure is registered but will not function without ${missing.length > 1 ? 'them' : 'it'}.`) }