|
|
const fs = require('fs');
|
|
|
const path = require('path');
|
|
|
const cssnano = require('cssnano');
|
|
|
|
|
|
const logger = global.yoho.logger;
|
|
|
const css = {};
|
|
|
|
|
|
module.exports = (file) => {
|
|
|
if (css[file]) {
|
|
|
return css[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();
|
|
|
|
|
|
css[file] = cssfile;
|
|
|
|
|
|
return css[file];
|
|
|
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 '';
|
|
|
});
|
|
|
}; |
...
|
...
|
|