30 lines
930 B
JavaScript
30 lines
930 B
JavaScript
import fs from 'node:fs/promises';
|
|
import path from 'node:path';
|
|
import postcss from 'postcss';
|
|
import postcssImport from 'postcss-import';
|
|
import postcssImportExtGlob from 'postcss-import-ext-glob';
|
|
import cssnano from 'cssnano';
|
|
|
|
export const cssConfig = (eleventyConfig) => {
|
|
eleventyConfig.addTemplateFormats('css');
|
|
eleventyConfig.addExtension('css', {
|
|
outputFileExtension: 'css',
|
|
compile: async (inputContent, inputPath) => {
|
|
const outputPath = 'dist/assets/css/index.css';
|
|
|
|
if (inputPath.endsWith('index.css')) {
|
|
return async () => {
|
|
let result = await postcss([postcssImportExtGlob, postcssImport, cssnano]).process(
|
|
inputContent,
|
|
{ from: inputPath }
|
|
);
|
|
|
|
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
await fs.writeFile(outputPath, result.css);
|
|
|
|
return result.css;
|
|
};
|
|
}
|
|
}
|
|
});
|
|
};
|