diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ddecbb34ff9..d6ef24b4883a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Fixed use of `raw` content in the CLI ([#9773](https://github.com/tailwindlabs/tailwindcss/pull/9773)) +- Pick up changes from files that are both context and content deps ([#9787](https://github.com/tailwindlabs/tailwindcss/pull/9787)) ## [3.2.2] - 2022-11-04 diff --git a/src/lib/content.js b/src/lib/content.js index c486a6886374..0f89913d27f7 100644 --- a/src/lib/content.js +++ b/src/lib/content.js @@ -196,7 +196,14 @@ function resolveChangedFiles(candidateFiles, fileModifiedMap) { let prevModified = fileModifiedMap.has(file) ? fileModifiedMap.get(file) : -Infinity let modified = fs.statSync(file).mtimeMs - if (modified > prevModified) { + // This check is intentionally >= because we track the last modified time of context dependencies + // earier in the process and we want to make sure we don't miss any changes that happen + // when a context dependency is also a content dependency + // Ideally, we'd do all this tracking at one time but that is a larger refactor + // than we want to commit to right now, so this is a decent compromise. + // This should be sufficient because file modification times will be off by at least + // 1ms (the precision of fstat in Node) in most cases if they exist and were changed. + if (modified >= prevModified) { changedFiles.add(file) fileModifiedMap.set(file, modified) }