Only process plugins once

This commit is contained in:
Adam Wathan 2018-06-22 20:57:40 -04:00
parent b21d258f63
commit 9b22ff3513
5 changed files with 9 additions and 17 deletions

View File

@ -1,9 +1,10 @@
import postcss from 'postcss'
import plugin from '../src/lib/substituteVariantsAtRules'
import config from '../defaultConfig.stub.js'
import processPlugins from '../src/util/processPlugins'
function run(input, opts = config) {
return postcss([plugin(opts)]).process(input, { from: undefined })
return postcss([plugin(opts, processPlugins(opts))]).process(input, { from: undefined })
}
test('it can generate hover variants', () => {

View File

@ -8,7 +8,6 @@ import registerConfigAsDependency from './lib/registerConfigAsDependency'
import processTailwindFeatures from './processTailwindFeatures'
import mergeConfigWithDefaults from './util/mergeConfigWithDefaults'
const plugin = postcss.plugin('tailwind', config => {
const plugins = []

View File

@ -3,14 +3,9 @@ import postcss from 'postcss'
import utilityModules from '../utilityModules'
import prefixTree from '../util/prefixTree'
import generateModules from '../util/generateModules'
import processPlugins from '../util/processPlugins'
export default function(config) {
export default function(config, { components: pluginComponents, utilities: pluginUtilities }) {
return function(css) {
const { components: pluginComponents, utilities: pluginUtilities } = processPlugins(
config
)
css.walkAtRules('tailwind', atRule => {
if (atRule.params === 'preflight') {
const preflightTree = postcss.parse(

View File

@ -2,7 +2,6 @@ import _ from 'lodash'
import postcss from 'postcss'
import buildSelectorVariant from '../util/buildSelectorVariant'
import generateVariantFunction from '../util/generateVariantFunction'
import processPlugins from '../util/processPlugins'
function generatePseudoClassVariant(pseudoClass) {
return generateVariantFunction(({ className, separator }) => {
@ -29,11 +28,11 @@ const defaultVariantGenerators = {
active: generatePseudoClassVariant('active'),
}
export default function(config) {
export default function(config, { variantGenerators: pluginVariantGenerators }) {
return function(css) {
const variantGenerators = {
...defaultVariantGenerators,
...processPlugins(config).variantGenerators,
...pluginVariantGenerators,
}
css.walkAtRules('variants', atRule => {

View File

@ -1,23 +1,21 @@
import path from 'path'
import _ from 'lodash'
import postcss from 'postcss'
import registerConfigAsDependency from './lib/registerConfigAsDependency'
import substituteTailwindAtRules from './lib/substituteTailwindAtRules'
import evaluateTailwindFunctions from './lib/evaluateTailwindFunctions'
import substituteVariantsAtRules from './lib/substituteVariantsAtRules'
import substituteResponsiveAtRules from './lib/substituteResponsiveAtRules'
import substituteScreenAtRules from './lib/substituteScreenAtRules'
import substituteClassApplyAtRules from './lib/substituteClassApplyAtRules'
import processPlugins from './util/processPlugins'
export default function(lazyConfig) {
const config = lazyConfig()
const plugins = processPlugins(config)
return postcss([
substituteTailwindAtRules(config),
substituteTailwindAtRules(config, plugins),
evaluateTailwindFunctions(config),
substituteVariantsAtRules(config),
substituteVariantsAtRules(config, plugins),
substituteResponsiveAtRules(config),
substituteScreenAtRules(config),
substituteClassApplyAtRules(config),