From 0ebaa5146523409f76a5cdff4887f31cce43e17b Mon Sep 17 00:00:00 2001 From: Connor Pearson Date: Fri, 7 Mar 2025 12:32:08 +0100 Subject: [PATCH] fix(nuxt): apply ignore rules to nitro `devStorage` (#31233) --- packages/nuxt/src/core/nitro.ts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index e552ffad67..da3ea0250b 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -6,7 +6,7 @@ import { createRouter as createRadixRouter, exportMatcher, toRouteMatcher } from import { joinURL, withTrailingSlash } from 'ufo' import { build, copyPublicAssets, createDevServer, createNitro, prepare, prerender, scanHandlers, writeTypes } from 'nitropack' import type { Nitro, NitroConfig, NitroOptions } from 'nitropack' -import { findPath, logger, resolveAlias, resolveIgnorePatterns, resolveNuxtModule } from '@nuxt/kit' +import { createIsIgnored, findPath, logger, resolveAlias, resolveIgnorePatterns, resolveNuxtModule } from '@nuxt/kit' import escapeRE from 'escape-string-regexp' import { defu } from 'defu' import { dynamicEventHandler } from 'h3' @@ -428,6 +428,28 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { }), ) + // Apply Nuxt's ignore configuration to the root and src unstorage mounts + // created by Nitro. This ensures that the unstorage watcher will use the + // same ignore list as Nuxt's watcher and can reduce unneccesary file handles. + const isIgnored = createIsIgnored(nuxt) + nitroConfig.devStorage ??= {} + nitroConfig.devStorage.root ??= { + driver: 'fs', + readOnly: true, + base: nitroConfig.rootDir, + watchOptions: { + ignored: [isIgnored], + }, + } + nitroConfig.devStorage.src ??= { + driver: 'fs', + readOnly: true, + base: nitroConfig.srcDir, + watchOptions: { + ignored: [isIgnored], + }, + } + // Extend nitro config with hook await nuxt.callHook('nitro:config', nitroConfig)