diff --git a/packages/@tailwindcss-cli/src/commands/build/index.ts b/packages/@tailwindcss-cli/src/commands/build/index.ts index 206bf27fbca2..56789155057d 100644 --- a/packages/@tailwindcss-cli/src/commands/build/index.ts +++ b/packages/@tailwindcss-cli/src/commands/build/index.ts @@ -237,16 +237,21 @@ export async function handle(args: Result>) { let [compiler, scanner] = await handleError(() => createCompiler(input, I)) + let lock = false + // Watch for changes if (args['--watch']) { let cleanupWatchers = await createWatchers( watchDirectories(scanner), async function handle(files) { try { + if (lock) return // If the only change happened to the output file, then we don't want to // trigger a rebuild because that will result in an infinite loop. if (files.length === 1 && files[0] === args['--output']) return + lock = true + using I = new Instrumentation() DEBUG && I.start('[@tailwindcss/cli] (watcher)') @@ -362,6 +367,7 @@ export async function handle(args: Result>) { eprintln(err.toString()) } } + lock = false }, )