diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d4b2802106c..27b90c6201c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -- Nothing yet! +- Fix issue where `resolveConfig` didn't take into account configs added by feature flags ([#2347](https://github.com/tailwindlabs/tailwindcss/pull/2347)) ## [1.8.4] - 2020-09-06 diff --git a/package.json b/package.json index 7befecf6789b..8fac74f758b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tailwindcss", - "version": "1.8.4", + "version": "1.8.5", "description": "A utility-first CSS framework for rapidly building custom user interfaces.", "license": "MIT", "main": "lib/index.js", diff --git a/resolveConfig.js b/resolveConfig.js index ecd5bf1fd635..2b8d5be2c9de 100644 --- a/resolveConfig.js +++ b/resolveConfig.js @@ -1,6 +1,11 @@ const resolveConfigObjects = require('./lib/util/resolveConfig').default -const defaultConfig = require('./stubs/defaultConfig.stub.js') +const getAllConfigs = require('./lib/util/getAllConfigs').default module.exports = function resolveConfig(...configs) { - return resolveConfigObjects([...configs, defaultConfig]) + // Make sure the correct config object is mutated to include flagged config plugins. + // This sucks, refactor soon. + const firstConfigWithPlugins = configs.find(c => Array.isArray(c.plugins)) || configs[0] + const [, ...defaultConfigs] = getAllConfigs(firstConfigWithPlugins) + + return resolveConfigObjects([...configs, ...defaultConfigs]) } diff --git a/src/flagged/darkModeVariant.js b/src/flagged/darkModeVariant.js index 658031149d02..7d550c6f9663 100644 --- a/src/flagged/darkModeVariant.js +++ b/src/flagged/darkModeVariant.js @@ -38,7 +38,7 @@ export default { modified.walkRules(rule => { rule.selectors = rule.selectors.map(selector => { - return `${prefix('.dark ')} ${selector}` + return `${prefix('.dark')} ${selector}` }) }) diff --git a/src/index.js b/src/index.js index ad5f2c9ed3e2..4b34ee27bc02 100644 --- a/src/index.js +++ b/src/index.js @@ -9,49 +9,9 @@ import registerConfigAsDependency from './lib/registerConfigAsDependency' import processTailwindFeatures from './processTailwindFeatures' import formatCSS from './lib/formatCSS' import resolveConfig from './util/resolveConfig' +import getAllConfigs from './util/getAllConfigs' import { defaultConfigFile } from './constants' import defaultConfig from '../stubs/defaultConfig.stub.js' -import { flagEnabled } from './featureFlags' - -import uniformColorPalette from './flagged/uniformColorPalette.js' -import extendedSpacingScale from './flagged/extendedSpacingScale.js' -import defaultLineHeights from './flagged/defaultLineHeights.js' -import extendedFontSizeScale from './flagged/extendedFontSizeScale.js' -import darkModeVariant from './flagged/darkModeVariant.js' -import standardFontWeights from './flagged/standardFontWeights' - -function getAllConfigs(config) { - const configs = [defaultConfig] - - if (flagEnabled(config, 'uniformColorPalette')) { - configs.unshift(uniformColorPalette) - } - - if (flagEnabled(config, 'extendedSpacingScale')) { - configs.unshift(extendedSpacingScale) - } - - if (flagEnabled(config, 'defaultLineHeights')) { - configs.unshift(defaultLineHeights) - } - - if (flagEnabled(config, 'extendedFontSizeScale')) { - configs.unshift(extendedFontSizeScale) - } - - if (flagEnabled(config, 'standardFontWeights')) { - configs.unshift(standardFontWeights) - } - - if (flagEnabled(config, 'darkModeVariant')) { - configs.unshift(darkModeVariant) - if (Array.isArray(config.plugins)) { - config.plugins = [...darkModeVariant.plugins, ...config.plugins] - } - } - - return [config, ...configs] -} function resolveConfigPath(filePath) { // require('tailwindcss')({ theme: ..., variants: ... }) diff --git a/src/util/getAllConfigs.js b/src/util/getAllConfigs.js new file mode 100644 index 000000000000..cc3c76831ef2 --- /dev/null +++ b/src/util/getAllConfigs.js @@ -0,0 +1,41 @@ +import defaultConfig from '../../stubs/defaultConfig.stub.js' +import { flagEnabled } from '../featureFlags' +import uniformColorPalette from '../flagged/uniformColorPalette.js' +import extendedSpacingScale from '../flagged/extendedSpacingScale.js' +import defaultLineHeights from '../flagged/defaultLineHeights.js' +import extendedFontSizeScale from '../flagged/extendedFontSizeScale.js' +import darkModeVariant from '../flagged/darkModeVariant.js' +import standardFontWeights from '../flagged/standardFontWeights' + +export default function getAllConfigs(config) { + const configs = [defaultConfig] + + if (flagEnabled(config, 'uniformColorPalette')) { + configs.unshift(uniformColorPalette) + } + + if (flagEnabled(config, 'extendedSpacingScale')) { + configs.unshift(extendedSpacingScale) + } + + if (flagEnabled(config, 'defaultLineHeights')) { + configs.unshift(defaultLineHeights) + } + + if (flagEnabled(config, 'extendedFontSizeScale')) { + configs.unshift(extendedFontSizeScale) + } + + if (flagEnabled(config, 'standardFontWeights')) { + configs.unshift(standardFontWeights) + } + + if (flagEnabled(config, 'darkModeVariant')) { + configs.unshift(darkModeVariant) + if (Array.isArray(config.plugins)) { + config.plugins = [...darkModeVariant.plugins, ...config.plugins] + } + } + + return [config, ...configs] +}