Files
blog_bricked/postcss.config.mjs

55 lines
1.3 KiB
JavaScript

// postcss.config.js
import { purgeCSSPlugin } from '@fullhuman/postcss-purgecss';
import glob from 'glob-all';
import path from 'path';
import postcssGlobalData from '@csstools/postcss-global-data';
import postcssEasing from 'postcss-easings';
import postcssImport from 'postcss-import';
import postcssMixins from 'postcss-mixins';
import postcssNesting from 'postcss-nesting';
import postcssPresetEnv from 'postcss-preset-env';
import postcssUtilities from 'postcss-utilities';
import postcssFunctions from 'postcss-functions';
import customFunctions from './src/lib/postcss/functions';
const plugins = [
postcssGlobalData({
files: ['./src/styles/variables/custom-media.css'],
}),
postcssMixins({
mixinsDir: './src/styles/mixins/',
}),
postcssImport(),
postcssPresetEnv({
stage: 1,
features: {
'nesting-rules': false,
'media-query-ranges': {
preserve: true,
},
},
}),
postcssEasing(),
postcssUtilities(),
postcssNesting(),
postcssFunctions({
functions: customFunctions,
}),
];
if (process.env.NODE_ENV === 'production') {
plugins.push(
purgeCSSPlugin({
content: glob.sync([
path.join(process.cwd(), 'src/**/*.{js,jsx,ts,tsx,css}'),
path.join(process.cwd(), 'content/**/*.{md,mdx}'),
]),
safelist: ['html', 'body'],
})
);
}
export default {
plugins,
};