Showing
4 changed files
with
35 additions
and
11 deletions
1 | 'use strict'; | 1 | 'use strict'; |
2 | const css = require('../css'); | 2 | const css = require('../css'); |
3 | +const co = require('bluebird').coroutine; | ||
3 | 4 | ||
4 | -const detail = (req, res) => { | ||
5 | - res.render('guang/detail', { | ||
6 | - css: css('guang/detail.css'), | ||
7 | - msg: 'xxxxxxx' | ||
8 | - }); | 5 | +const detail = (req, res, next) => { |
6 | + co(function* () { | ||
7 | + return res.render('guang/detail', { | ||
8 | + css: yield css('guang/detail.css'), | ||
9 | + msg: 'xxxxxxx' | ||
10 | + }); | ||
11 | + })().catch(next); | ||
9 | }; | 12 | }; |
10 | 13 | ||
11 | module.exports = { | 14 | module.exports = { |
1 | const fs = require('fs'); | 1 | const fs = require('fs'); |
2 | const path = require('path'); | 2 | const path = require('path'); |
3 | +const cssnano = require('cssnano'); | ||
3 | 4 | ||
5 | +const logger = global.yoho.logger; | ||
4 | const css = {}; | 6 | const css = {}; |
5 | 7 | ||
6 | module.exports = (file) => { | 8 | module.exports = (file) => { |
7 | - if (css[file]) { | ||
8 | - return css[file]; | 9 | + const isDev = process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test'; |
10 | + | ||
11 | + if (css[file] && !isDev) { | ||
12 | + return Promise.resolve(css[file]); | ||
9 | } | 13 | } |
10 | 14 | ||
11 | const cssPath = path.join(__dirname, 'css', file); | 15 | const cssPath = path.join(__dirname, 'css', file); |
12 | const cssfile = fs.readFileSync(cssPath).toString(); | 16 | const cssfile = fs.readFileSync(cssPath).toString(); |
13 | 17 | ||
14 | - css[file] = cssfile; | ||
15 | - | ||
16 | - return css[file]; | 18 | + return cssnano.process(cssfile, { |
19 | + safe: true, | ||
20 | + autoprefixer: { | ||
21 | + add: true, | ||
22 | + browsers: ['> 1%', 'android >=4', 'ios >=8'] | ||
23 | + } | ||
24 | + }).then(function(result) { | ||
25 | + if (result && result.css) { | ||
26 | + css[file] = result.css; | ||
27 | + return css[file]; | ||
28 | + } | ||
29 | + return ''; | ||
30 | + }).catch(err => { | ||
31 | + logger.error(err); | ||
32 | + return ''; | ||
33 | + }); | ||
17 | }; | 34 | }; |
@@ -26,6 +26,7 @@ | @@ -26,6 +26,7 @@ | ||
26 | "body-parser": "^1.16.1", | 26 | "body-parser": "^1.16.1", |
27 | "captchapng": "0.0.1", | 27 | "captchapng": "0.0.1", |
28 | "cheerio": "^0.22.0", | 28 | "cheerio": "^0.22.0", |
29 | + "cssnano": "^3.10.0", | ||
29 | "client-sessions": "^0.8.0", | 30 | "client-sessions": "^0.8.0", |
30 | "compression": "^1.6.2", | 31 | "compression": "^1.6.2", |
31 | "connect-memcached": "^0.2.0", | 32 | "connect-memcached": "^0.2.0", |
@@ -62,7 +63,6 @@ | @@ -62,7 +63,6 @@ | ||
62 | "babel-polyfill": "^6.23.0", | 63 | "babel-polyfill": "^6.23.0", |
63 | "babel-preset-env": "^1.4.0", | 64 | "babel-preset-env": "^1.4.0", |
64 | "css-loader": "^0.28.1", | 65 | "css-loader": "^0.28.1", |
65 | - "cssnano": "^3.10.0", | ||
66 | "eslint": "^3.19.0", | 66 | "eslint": "^3.19.0", |
67 | "eslint-config-yoho": "^1.0.1", | 67 | "eslint-config-yoho": "^1.0.1", |
68 | "eslint-loader": "^1.7.1", | 68 | "eslint-loader": "^1.7.1", |
-
Please register or login to post a comment