Authored by 毕凯

支持 cssnano

'use strict';
const css = require('../css');
const co = require('bluebird').coroutine;
const detail = (req, res) => {
res.render('guang/detail', {
css: css('guang/detail.css'),
msg: 'xxxxxxx'
});
const detail = (req, res, next) => {
co(function* () {
return res.render('guang/detail', {
css: yield css('guang/detail.css'),
msg: 'xxxxxxx'
});
})().catch(next);
};
module.exports = {
... ...
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 '';
});
};
... ...
body {
display: flex;
a {
display: none;
}
}
... ...
... ... @@ -26,6 +26,7 @@
"body-parser": "^1.16.1",
"captchapng": "0.0.1",
"cheerio": "^0.22.0",
"cssnano": "^3.10.0",
"client-sessions": "^0.8.0",
"compression": "^1.6.2",
"connect-memcached": "^0.2.0",
... ... @@ -62,7 +63,6 @@
"babel-polyfill": "^6.23.0",
"babel-preset-env": "^1.4.0",
"css-loader": "^0.28.1",
"cssnano": "^3.10.0",
"eslint": "^3.19.0",
"eslint-config-yoho": "^1.0.1",
"eslint-loader": "^1.7.1",
... ...