UNPKG

@minko-fe/postcss-config

Version:
67 lines (64 loc) 1.95 kB
import { isObject, merge } from '@minko-fe/lodash-pro'; import { createRequire } from 'node:module'; const _require = createRequire(import.meta.url); const postcssConfig = (options, unPlugins) => { if (options["postcss-import"] !== false) { unPlugins("postcss-import"); } if (options["tailwindcss/nesting"] !== false) { unPlugins("tailwindcss/nesting"); } { const { tailwindcss } = options; if (tailwindcss !== false) { const options2 = isObject(tailwindcss) ? tailwindcss : void 0; unPlugins("tailwindcss", options2); } } { const { autoprefixer } = options; if (autoprefixer !== false) { unPlugins("autoprefixer"); } } { const pxtorem = options["postcss-pxtorem"]; if (pxtorem) { unPlugins("@minko-fe/postcss-pxtorem", options); } } { const pxtoviewport = options["postcss-pxtoviewport"]; if (pxtoviewport) { unPlugins("@minko-fe/postcss-pxtoviewport", options); } } { const presetEnv = options["postcss-preset-env"]; if (presetEnv !== false) { const browserslist = _require("browserslist"); const defaultBrowserslist = browserslist.loadConfig({ path: "." }); const defaultOptions = { browsers: defaultBrowserslist || ["defaults"], features: { "nesting-rules": false, "custom-properties": false }, autoprefixer: { // Disable legacy flexbox support flexbox: "no-2009" }, // Enable CSS features that have shipped to the // web platform, i.e. in 2+ browsers unflagged. stage: 3 }; const _options = merge(defaultOptions, isObject(presetEnv) ? presetEnv : {}); if (options["tailwindcss/nesting"] === false) { _options.features ??= {}; _options.features["nesting-rules"] = true; } unPlugins("postcss-preset-env", _options); } } }; export { postcssConfig };