feat: minify + bundle css
This commit is contained in:
parent
fc62bdf104
commit
d1b6b8cbea
4 changed files with 1820 additions and 31 deletions
33
config/plugins/css-config.js
Normal file
33
config/plugins/css-config.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
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 autoprefixer from 'autoprefixer'
|
||||
import cssnano from 'cssnano'
|
||||
|
||||
export const cssConfig = (eleventyConfig) => {
|
||||
eleventyConfig.addTemplateFormats('css')
|
||||
eleventyConfig.addExtension('css', {
|
||||
outputFileExtension: 'css',
|
||||
compile: async (inputContent, inputPath) => {
|
||||
const outputPath = '_site/assets/css/index.css'
|
||||
|
||||
if (inputPath.endsWith('index.css')) {
|
||||
return async () => {
|
||||
let result = await postcss([
|
||||
postcssImportExtGlob,
|
||||
postcssImport,
|
||||
autoprefixer,
|
||||
cssnano,
|
||||
]).process(inputContent, { from: inputPath })
|
||||
|
||||
await fs.mkdir(path.dirname(outputPath), { recursive: true })
|
||||
await fs.writeFile(outputPath, result.css)
|
||||
|
||||
return result.css
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
Reference in a new issue