Skip to content

Commit

Permalink
prefer local plugins (#4598)
Browse files Browse the repository at this point in the history
* prefer local plugins over bundled plugins

* hoist resolving of plugins

* drop `options` when local `cssnano` is found
  • Loading branch information
RobinMalfait committed Jun 9, 2021
1 parent 976acb4 commit 6f1d5f0
Showing 1 changed file with 54 additions and 15 deletions.
69 changes: 54 additions & 15 deletions src/cli.js
Expand Up @@ -448,8 +448,26 @@ async function build() {
tailwindPlugin,
!args['--minify'] && formatNodes,
...afterPlugins,
!args['--no-autoprefixer'] && lazyAutoprefixer(),
args['--minify'] && lazyCssnano()({ preset: ['default', { cssDeclarationSorter: false }] }),
!args['--no-autoprefixer'] &&
(() => {
// Try to load a local `autoprefixer` version first
try {
return require('autoprefixer')
} catch {}

return lazyAutoprefixer()
})(),
args['--minify'] &&
(() => {
let options = { preset: ['default', { cssDeclarationSorter: false }] }

// Try to load a local `cssnano` version first
try {
return require('cssnano')
} catch {}

return lazyCssnano()(options)
})(),
].filter(Boolean)

let processor = postcss(plugins)
Expand Down Expand Up @@ -485,7 +503,7 @@ async function build() {

let context = null

function startWatcher() {
async function startWatcher() {
let changedContent = []
let configDependencies = []
let contextDependencies = new Set()
Expand All @@ -509,6 +527,35 @@ async function build() {
return resolveConfig()
}

let [beforePlugins, afterPlugins] = includePostCss ? await loadPostCssPlugins() : [[], []]

let plugins = [
...beforePlugins,
'__TAILWIND_PLUGIN_POSITION__',
!args['--minify'] && formatNodes,
...afterPlugins,
!args['--no-autoprefixer'] &&
(() => {
// Try to load a local `autoprefixer` version first
try {
return require('autoprefixer')
} catch {}

return lazyAutoprefixer()
})(),
args['--minify'] &&
(() => {
let options = { preset: ['default', { cssDeclarationSorter: false }] }

// Try to load a local `cssnano` version first
try {
return require('cssnano')
} catch {}

return lazyCssnano()(options)
})(),
].filter(Boolean)

async function rebuild(config) {
env.DEBUG && console.time('Finished in')

Expand Down Expand Up @@ -548,18 +595,10 @@ async function build() {

tailwindPlugin.postcss = true

let [beforePlugins, afterPlugins] = includePostCss ? await loadPostCssPlugins() : [[], []]

let plugins = [
...beforePlugins,
tailwindPlugin,
!args['--minify'] && formatNodes,
...afterPlugins,
!args['--no-autoprefixer'] && lazyAutoprefixer(),
args['--minify'] && lazyCssnano()({ preset: ['default', { cssDeclarationSorter: false }] }),
].filter(Boolean)

let processor = postcss(plugins)
let tailwindPluginIdx = plugins.indexOf('__TAILWIND_PLUGIN_POSITION__')
let copy = plugins.slice()
copy.splice(tailwindPluginIdx, 1, tailwindPlugin)
let processor = postcss(copy)

function processCSS(css) {
let start = process.hrtime.bigint()
Expand Down

0 comments on commit 6f1d5f0

Please sign in to comment.