mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-12 03:47:50 +00:00
Use the Node zlib module instead of shelling out to gzip.
Former-commit-id: f73339f6fd421ec4ddd1ec13ef13a18926419cdb
This commit is contained in:
19
build.js
19
build.js
@@ -2,9 +2,10 @@
|
|||||||
;(function() {
|
;(function() {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/** The Node filesystem, path, and child process modules */
|
/** The Node filesystem, path, `zlib`, and child process modules */
|
||||||
var fs = require('fs'),
|
var fs = require('fs'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
|
gzip = require('zlib').gzip,
|
||||||
spawn = require('child_process').spawn;
|
spawn = require('child_process').spawn;
|
||||||
|
|
||||||
/** The build directory containing the build scripts */
|
/** The build directory containing the build scripts */
|
||||||
@@ -34,9 +35,6 @@
|
|||||||
'--warning_level=QUIET'
|
'--warning_level=QUIET'
|
||||||
];
|
];
|
||||||
|
|
||||||
/** Gzip command-line options */
|
|
||||||
var gzipOptions = ['-9f', '-c'];
|
|
||||||
|
|
||||||
/** The pre-processed Lo-Dash source */
|
/** The pre-processed Lo-Dash source */
|
||||||
var source = preprocess(fs.readFileSync(path.join(__dirname, 'lodash.js'), 'utf8'));
|
var source = preprocess(fs.readFileSync(path.join(__dirname, 'lodash.js'), 'utf8'));
|
||||||
|
|
||||||
@@ -159,7 +157,7 @@
|
|||||||
}
|
}
|
||||||
// store the post-processed Closure Compiler result and gzip it
|
// store the post-processed Closure Compiler result and gzip it
|
||||||
accumulator.compiled.source = result = postprocess(result);
|
accumulator.compiled.source = result = postprocess(result);
|
||||||
invoke('gzip', gzipOptions, result, 'binary', onClosureGzip);
|
gzip(result, onClosureGzip);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -167,7 +165,7 @@
|
|||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @param {Object|Undefined} exception The error object.
|
* @param {Object|Undefined} exception The error object.
|
||||||
* @param {String} result The resulting gzipped source.
|
* @param {Buffer} result The resulting gzipped source.
|
||||||
*/
|
*/
|
||||||
function onClosureGzip(exception, result) {
|
function onClosureGzip(exception, result) {
|
||||||
if (exception) {
|
if (exception) {
|
||||||
@@ -194,7 +192,7 @@
|
|||||||
}
|
}
|
||||||
// store the post-processed Uglified result and gzip it
|
// store the post-processed Uglified result and gzip it
|
||||||
accumulator.uglified.source = result = postprocess(result);
|
accumulator.uglified.source = result = postprocess(result);
|
||||||
invoke('gzip', gzipOptions, result, 'binary', onUglifyGzip);
|
gzip(result, onUglifyGzip);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -202,7 +200,7 @@
|
|||||||
*
|
*
|
||||||
* @private
|
* @private
|
||||||
* @param {Object|Undefined} exception The error object.
|
* @param {Object|Undefined} exception The error object.
|
||||||
* @param {String} result The resulting gzipped source.
|
* @param {Buffer} result The resulting gzipped source.
|
||||||
*/
|
*/
|
||||||
function onUglifyGzip(exception, result) {
|
function onUglifyGzip(exception, result) {
|
||||||
if (exception) {
|
if (exception) {
|
||||||
@@ -227,12 +225,11 @@
|
|||||||
|
|
||||||
// save the Closure Compiled version to disk
|
// save the Closure Compiled version to disk
|
||||||
fs.writeFileSync(path.join(distPath, 'lodash.compiler.js'), compiled.source);
|
fs.writeFileSync(path.join(distPath, 'lodash.compiler.js'), compiled.source);
|
||||||
// explicit 'binary' is necessary to ensure the stream is written correctly
|
fs.writeFileSync(path.join(distPath, 'lodash.compiler.js.gz'), compiled.gzip);
|
||||||
fs.writeFileSync(path.join(distPath, 'lodash.compiler.js.gz'), compiled.gzip, 'binary');
|
|
||||||
|
|
||||||
// save the Uglified version to disk
|
// save the Uglified version to disk
|
||||||
fs.writeFileSync(path.join(distPath, 'lodash.uglify.js'), uglified.source);
|
fs.writeFileSync(path.join(distPath, 'lodash.uglify.js'), uglified.source);
|
||||||
fs.writeFileSync(path.join(distPath, 'lodash.uglify.js.gz'), uglified.gzip, 'binary');
|
fs.writeFileSync(path.join(distPath, 'lodash.uglify.js.gz'), uglified.gzip);
|
||||||
|
|
||||||
// select the smallest gzipped file and use its minified counterpart as the
|
// select the smallest gzipped file and use its minified counterpart as the
|
||||||
// official minified release (ties go to Closure Compiler)
|
// official minified release (ties go to Closure Compiler)
|
||||||
|
|||||||
Reference in New Issue
Block a user