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 '';
    });
};