Skip to content

Commit f3ad750

Browse files
committed
resolve purgecss patterns relative to the config file if there is one
1 parent 1dcf233 commit f3ad750

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ module.exports = function (config) {
9797

9898
return {
9999
postcssPlugin: 'tailwindcss',
100-
plugins: [...plugins, processTailwindFeatures(getConfig), formatCSS],
100+
plugins: [...plugins, processTailwindFeatures(getConfig, resolvedConfigPath), formatCSS],
101101
}
102102
}
103103

src/lib/purgeUnusedStyles.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import postcss from 'postcss'
33
import purgecss from '@fullhuman/postcss-purgecss'
44
import log from '../util/log'
55
import htmlTags from 'html-tags'
6+
import path from 'path'
67

78
function removeTailwindMarkers(css) {
89
css.walkAtRules('tailwind', (rule) => rule.remove())
@@ -33,7 +34,7 @@ export function tailwindExtractor(content) {
3334
return broadMatches.concat(broadMatchesWithoutTrailingSlash).concat(innerMatches)
3435
}
3536

36-
export default function purgeUnusedUtilities(config, configChanged) {
37+
export default function purgeUnusedUtilities(config, configChanged, resolvedConfigPath) {
3738
const purgeEnabled = _.get(
3839
config,
3940
'purge.enabled',
@@ -104,7 +105,6 @@ export default function purgeUnusedUtilities(config, configChanged) {
104105
},
105106
removeTailwindMarkers,
106107
purgecss({
107-
content: Array.isArray(config.purge) ? config.purge : config.purge.content,
108108
defaultExtractor: (content) => {
109109
const extractor = defaultExtractor || tailwindExtractor
110110
const preserved = [...extractor(content)]
@@ -116,6 +116,12 @@ export default function purgeUnusedUtilities(config, configChanged) {
116116
return preserved
117117
},
118118
...purgeOptions,
119+
content: (Array.isArray(config.purge)
120+
? config.purge
121+
: config.purge.content || purgeOptions.content || []
122+
).map((pattern) =>
123+
path.resolve(resolvedConfigPath ? path.dirname(resolvedConfigPath) : process.cwd(), pattern)
124+
),
119125
}),
120126
])
121127
}

src/processTailwindFeatures.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ let previousConfig = null
2424
let processedPlugins = null
2525
let getProcessedPlugins = null
2626

27-
export default function (getConfig) {
27+
export default function (getConfig, resolvedConfigPath) {
2828
return function (css) {
2929
const config = getConfig()
3030
const configChanged = hash(previousConfig) !== hash(config)
@@ -65,7 +65,7 @@ export default function (getConfig) {
6565
substituteScreenAtRules(config),
6666
substituteClassApplyAtRules(config, getProcessedPlugins, configChanged),
6767
applyImportantConfiguration(config),
68-
purgeUnusedStyles(config, configChanged),
68+
purgeUnusedStyles(config, configChanged, resolvedConfigPath),
6969
]).process(css, { from: _.get(css, 'source.input.file') })
7070
}
7171
}

0 commit comments

Comments
 (0)