From fb496de42f508bae86ee063f4eb1fe4906486015 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Wed, 12 Feb 2014 14:34:50 +0100 Subject: [PATCH] refactor(caching): only 1 css file, use grunt-contrib-cssmin to rewrite urls --- Gruntfile.js | 20 ++++++++++++++------ src/middleware.js | 21 ++++++++++----------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index ae064377ef..ea26d68449 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -106,22 +106,30 @@ module.exports = function(grunt) { var files = grunt.file.readJSON('./public/manifest.json'); var uglify = {}; var cssmin = {}; + _.each(files, function(val, key){ + var js = uglify['build/' + key + '.js'] = []; + _.each(files[key]['js'], function(val){ js.push('public/' + val); }); + + var css = cssmin['build/' + key + '.css'] = []; + _.each(files[key]['css'], function(val){ - if(val == 'app.css' || val == 'static.css'){ - cssmin['build/' + val] = ['build/' + val] - }else{ - cssmin['build/' + val] = ['public/' + val] - } + var path = (val == 'app.css' || val == 'static.css') ? 'build/' : 'public/'; + css.push(path + val) }); + }); + grunt.config.set('uglify.build.files', uglify); - grunt.config.set('uglify.build.options', {compress: false}) + grunt.config.set('uglify.build.options', {compress: false}); + grunt.config.set('cssmin.build.files', cssmin); + // Rewrite urls to relative path + grunt.config.set('cssmin.build.options', {'target': 'public/css/whatever-css.css'}); }); // Register tasks. diff --git a/src/middleware.js b/src/middleware.js index 30e95ca5c6..4894b586d1 100644 --- a/src/middleware.js +++ b/src/middleware.js @@ -122,22 +122,21 @@ var getManifestFiles = function(page){ if(!files) throw new Error("Page not found!"); - var css = ''; - - _.each(files.css, function(file){ - css += ''; - }); + var code = ''; if(nconf.get('NODE_ENV') === 'production'){ - return css + ''; + code += ''; + code += ''; }else{ - var results = css; - _.each(files.js, function(file){ - results += ''; + _.each(files.css, function(file){ + code += ''; + }); + _.each(files.js, function(file){ + code += ''; }); - return results; } - + + return code; } // Translations