source map support, first pass

This commit is contained in:
Julian Lam
2014-05-29 19:44:30 -04:00
parent 5ae29ef33a
commit f8061e23ec
3 changed files with 51 additions and 30 deletions

View File

@@ -300,7 +300,8 @@ var fs = require('fs'),
minifier.on('message', function(payload) {
if (payload.action !== 'error') {
winston.info('[meta/js] Compilation complete');
Meta.js.cache = payload.data;
Meta.js.cache = payload.data.js;
Meta.js.map = payload.data.map;
minifier.kill();
} else {
winston.error('[meta/js] Could not compile client-side scripts!');
@@ -312,7 +313,8 @@ var fs = require('fs'),
this.prepare(function() {
minifier.send({
action: minify ? 'js.minify' : 'js.concatenate',
action: 'js',
minify: minify,
scripts: Meta.js.scripts
});
});

View File

@@ -11,18 +11,28 @@ var path = require('path'),
function sendMinifiedJS(req, res, next) {
if (!minificationEnabled) {
res.set('X-SourceMap', '/nodebb.min.js.map');
}
return res.type('text/javascript').send(meta.js.cache);
}
function sendSourceMap(req, res) {
return res.type('application/json').send(meta.js.map);
}
function sendStylesheet(req, res, next) {
res.type('text/css').send(200, meta.css.cache);
}
module.exports = function(app, middleware, controllers) {
minificationEnabled = app.enabled('minification');
app.get('/stylesheet.css', sendStylesheet);
app.get('/nodebb.min.js', sendMinifiedJS);
app.get('/sitemap.xml', controllers.sitemap);
app.get('/robots.txt', controllers.robots);
if (!minificationEnabled) {
app.get('/nodebb.min.js.map', sendSourceMap);
}
};