[Pkg-javascript-commits] [leaflet] 274/301: improve size reporting when building and add gzipped size
Jonas Smedegaard
js at moszumanska.debian.org
Mon Jan 27 22:22:56 UTC 2014
This is an automated email from the git hooks/post-receive script.
js pushed a commit to branch master
in repository leaflet.
commit 941b20671456c6db98414519fb30baee81ea4bfa
Author: Vladimir Agafonkin <agafonkin at gmail.com>
Date: Thu Nov 28 14:56:32 2013 +0200
improve size reporting when building and add gzipped size
---
Jakefile.js | 4 +++-
build/build.js | 54 ++++++++++++++++++++++++++++++++++++++++--------------
2 files changed, 43 insertions(+), 15 deletions(-)
diff --git a/Jakefile.js b/Jakefile.js
index f7ed145..77be075 100644
--- a/Jakefile.js
+++ b/Jakefile.js
@@ -32,7 +32,9 @@ desc('Check Leaflet specs source for errors with JSHint');
task('lintspec', {async: true}, hint('Checking for specs JS errors...', 'spec/spec.hintrc.js spec/suites'));
desc('Combine and compress Leaflet source files');
-task('build', build.build);
+task('build', {async: true}, function () {
+ build.build(complete);
+});
desc('Run PhantomJS tests');
task('test', ['lint', 'lintspec'], {async: true}, function () {
diff --git a/build/build.js b/build/build.js
index cbb714d..518c93f 100644
--- a/build/build.js
+++ b/build/build.js
@@ -1,6 +1,7 @@
var fs = require('fs'),
jshint = require('jshint'),
UglifyJS = require('uglify-js'),
+ zlib = require('zlib'),
deps = require('./deps.js').deps;
@@ -53,7 +54,7 @@ function getSizeDelta(newContent, oldContent) {
oldLen = oldContent.replace(/\r\n?/g, '\n').length,
delta = newLen - oldLen;
- return (delta >= 0 ? '+' : '') + delta;
+ return delta === 0 ? '' : '(' + (delta > 0 ? '+' : '') + delta + ' bytes)';
}
function loadSilently(path) {
@@ -72,11 +73,15 @@ function combineFiles(files) {
return content;
}
-exports.build = function (compsBase32, buildName) {
+function bytesToKB(bytes) {
+ return (bytes / 1024).toFixed(2) + ' KB';
+};
+
+exports.build = function (callback, compsBase32, buildName) {
var files = getFiles(compsBase32);
- console.log('Concatenating ' + files.length + ' files...');
+ console.log('Concatenating and compressing ' + files.length + ' files...');
var copy = fs.readFileSync('src/copyright.js', 'utf8'),
intro = '(function (window, document, undefined) {',
@@ -89,17 +94,15 @@ exports.build = function (compsBase32, buildName) {
oldSrc = loadSilently(srcPath),
srcDelta = getSizeDelta(newSrc, oldSrc);
- console.log('\tUncompressed size: ' + newSrc.length + ' bytes (' + srcDelta + ')');
+ console.log('\tUncompressed: ' + bytesToKB(newSrc.length) + srcDelta);
if (newSrc === oldSrc) {
- console.log('\tNo changes\n');
+ // console.log('\tNo changes');
} else {
fs.writeFileSync(srcPath, newSrc);
- console.log('\tSaved to ' + srcPath + '\n');
+ console.log('\tSaved to ' + srcPath);
}
- console.log('Compressing...');
-
var path = pathPart + '.js',
oldCompressed = loadSilently(path),
newCompressed = copy + UglifyJS.minify(newSrc, {
@@ -108,14 +111,37 @@ exports.build = function (compsBase32, buildName) {
}).code,
delta = getSizeDelta(newCompressed, oldCompressed);
- console.log('\tCompressed size: ' + newCompressed.length + ' bytes (' + delta + ')');
+ console.log('\tCompressed: ' + bytesToKB(newCompressed.length) + delta);
- if (newCompressed === oldCompressed) {
- console.log('\tNo changes\n');
- } else {
- fs.writeFileSync(path, newCompressed);
- console.log('\tSaved to ' + path + '\n');
+ var newGzipped,
+ gzippedDelta = '';
+
+ function done() {
+ var noChanges = newCompressed === oldCompressed;
+ if (!noChanges) {
+ fs.writeFileSync(path, newCompressed);
+ console.log('\tSaved to ' + path);
+ }
+ console.log('\tGzipped: ' + bytesToKB(newGzipped.length) + gzippedDelta);
+ if (noChanges) {
+ console.log('\tNo changes\n');
+ }
+ callback();
}
+
+ zlib.gzip(newCompressed, function (err, gzipped) {
+ if (err) { return; }
+ newGzipped = gzipped;
+ if (oldCompressed !== newCompressed) {
+ zlib.gzip(oldCompressed, function (err, oldGzipped) {
+ if (err) { return; }
+ gzippedDelta = getSizeDelta(gzipped.toString(), oldGzipped.toString());
+ done();
+ });
+ } else {
+ done();
+ }
+ });
};
exports.test = function(callback) {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/leaflet.git
More information about the Pkg-javascript-commits
mailing list