css.js
924 Bytes
const fs = require('fs');
const path = require('path');
const cssnano = require('cssnano');
const logger = global.yoho.logger;
const css = {};
module.exports = (file) => {
const isDev = !(process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test');
if (css[file] && !isDev) {
return Promise.resolve(css[file]);
}
const cssPath = path.join(__dirname, 'css', file);
const cssfile = fs.readFileSync(cssPath).toString();
logger.info(`cssnano process ${cssPath}`);
return cssnano.process(cssfile, {
safe: true,
autoprefixer: {
add: true,
browsers: ['> 1%', 'android >=4', 'ios >=8']
}
}).then(function(result) {
if (result && result.css) {
css[file] = result.css;
return css[file];
}
return '';
}).catch(err => {
logger.error(err);
return '';
});
};