1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-03 09:49:28 +02:00
Oinktube/node_modules/glightbox/development/postcss.js
Daniel Neto 59a20745e7 Update
2024-02-08 10:08:03 -03:00

63 lines
2 KiB
JavaScript

const postcss = require('postcss');
const cssnext = require('postcss-preset-env');
const cssnested = require('postcss-nested');
const cssmqpacker = require('css-mqpacker');
const cssprettify = require('postcss-prettify');
const cssclean = require('clean-css');
const path = require('path');
const fs = require('fs');
function postcssCompiler(config) {
const { file, dest, minify = true } = config;
const fileName = path.basename(file);
const from = path.join(__dirname, '../', file);
const to = path.join(__dirname, '../', dest, fileName);
const fileNameMin = path.extname(fileName);
const min = path.join(__dirname, '../', dest, fileName.replace(fileNameMin, `.min${fileNameMin}`));
const css = fs.readFileSync(from, 'utf8');
return new Promise((resolve, reject) => {
return postcss([
cssnested(),
cssnext({
stage: 0,
browsers: ['last 2 version'],
features: {
calc: false
}
}),
cssmqpacker({
sort: true
}),
cssprettify()
])
.process(css, {
from,
to
})
.then((result) => {
if (result && result.css) {
fs.writeFile(to, result.css, 'utf8', (err) => reject(err));
if (minify) {
const minified = new cssclean({}).minify(result.css);
fs.writeFile(min, minified.styles, 'utf8', (err) => reject(err));
if (result.map) {
fs.writeFile(to + '.map', result.map, 'utf8', (err) => reject(err));
}
}
resolve(to);
} else {
reject(result);
}
})
.catch((err) => {
console.log(err);
reject(err);
});
});
}
module.exports = postcssCompiler;