From 91ddcedb371e6b3c1295b616746bc24167605844 Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Thu, 15 Sep 2022 16:26:37 -0400 Subject: [PATCH] Add flag to resolve content relative to the config file --- src/featureFlags.js | 1 + src/lib/setupContextUtils.js | 2 ++ src/lib/setupTrackingContext.js | 2 +- src/util/parseDependency.js | 9 +++++++-- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/featureFlags.js b/src/featureFlags.js index fef84b149..7616dbd64 100644 --- a/src/featureFlags.js +++ b/src/featureFlags.js @@ -15,6 +15,7 @@ let featureFlags = { 'optimizeUniversalDefaults', 'matchVariant', // 'variantGrouping', + 'resolveContentRelativeToConfig', 'resolveConfigRelativeToInput', ], } diff --git a/src/lib/setupContextUtils.js b/src/lib/setupContextUtils.js index cb3bd1736..3c6f6ae40 100644 --- a/src/lib/setupContextUtils.js +++ b/src/lib/setupContextUtils.js @@ -997,6 +997,8 @@ export function getContext( let context = createContext(tailwindConfig, [], root) + Object.assign(context, { userConfigPath }) + trackModified([...contextDependencies], getFileModifiedMap(context)) // --- diff --git a/src/lib/setupTrackingContext.js b/src/lib/setupTrackingContext.js index 28656bb57..7ebc11044 100644 --- a/src/lib/setupTrackingContext.js +++ b/src/lib/setupTrackingContext.js @@ -162,7 +162,7 @@ export default function setupTrackingContext(configOrPath) { // Add template paths as postcss dependencies. for (let fileOrGlob of candidateFiles) { - for (let dependency of parseDependency(fileOrGlob)) { + for (let dependency of parseDependency(context, fileOrGlob)) { registerDependency(dependency) } } diff --git a/src/util/parseDependency.js b/src/util/parseDependency.js index bb9118cbe..1ae811659 100644 --- a/src/util/parseDependency.js +++ b/src/util/parseDependency.js @@ -51,7 +51,7 @@ function toDependency(pathDesc) { } } -export default function parseDependency(normalizedFileOrGlob) { +export default function parseDependency(context, normalizedFileOrGlob) { if (normalizedFileOrGlob.startsWith('!')) { return [] } @@ -66,9 +66,14 @@ export default function parseDependency(normalizedFileOrGlob) { paths.push({ base: normalizedFileOrGlob, glob: null }) } + // Resolve base paths relative to the config file or current working directory + let resolveFrom = flagEnabled(context.tailwindConfig, 'resolveContentRelativeToConfig') + ? [context.userConfigPath ?? process.cwd()] + : [process.cwd()] + paths = paths.map((pathDesc) => Object.assign(pathDesc, { - base: path.resolve(pathDesc.base), + base: path.resolve(...resolveFrom, pathDesc.base), }) )