@minko-fe/postcss-config
Version:
postcss-config
67 lines (64 loc) • 1.95 kB
JavaScript
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 };