mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-05 17:37:50 +00:00
Make build.js work as a npm executable.
Former-commit-id: fff327957854aa85a5abfe80994b59f3d0d24370
This commit is contained in:
9
build.js
9
build.js
@@ -8,6 +8,9 @@
|
|||||||
vm = require('vm'),
|
vm = require('vm'),
|
||||||
minify = require(path.join(__dirname, 'build', 'minify'));
|
minify = require(path.join(__dirname, 'build', 'minify'));
|
||||||
|
|
||||||
|
/** The current working directory */
|
||||||
|
var cwd = process.cwd();
|
||||||
|
|
||||||
/** Flag used to specify a backbone build */
|
/** Flag used to specify a backbone build */
|
||||||
var isBackbone = process.argv.indexOf('backbone') > -1;
|
var isBackbone = process.argv.indexOf('backbone') > -1;
|
||||||
|
|
||||||
@@ -871,14 +874,14 @@
|
|||||||
|
|
||||||
// begin the minification process
|
// begin the minification process
|
||||||
if (filterType || isBackbone || isLegacy || isMobile) {
|
if (filterType || isBackbone || isLegacy || isMobile) {
|
||||||
fs.writeFileSync(path.join(__dirname, 'lodash.custom.js'), source);
|
fs.writeFileSync(path.join(cwd, 'lodash.custom.js'), source);
|
||||||
minify(source, 'lodash.custom.min', function(result) {
|
minify(source, 'lodash.custom.min', function(result) {
|
||||||
fs.writeFileSync(path.join(__dirname, 'lodash.custom.min.js'), result);
|
fs.writeFileSync(path.join(cwd, 'lodash.custom.min.js'), result);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
minify(source, 'lodash.min', function(result) {
|
minify(source, 'lodash.min', function(result) {
|
||||||
fs.writeFileSync(path.join(__dirname, 'lodash.min.js'), result);
|
fs.writeFileSync(path.join(cwd, 'lodash.min.js'), result);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}());
|
}());
|
||||||
|
|||||||
@@ -35,8 +35,8 @@
|
|||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The exposed `minify` function minifies a given `source` and invokes the
|
* The exposed `minify` function minifies a given Lo-Dash `source` and invokes
|
||||||
* `onComplete` callback when finished.
|
* the `onComplete` callback when finished.
|
||||||
*
|
*
|
||||||
* @param {String} source The source to minify.
|
* @param {String} source The source to minify.
|
||||||
* @param {String} workingName The name to give temporary files creates during the minification process.
|
* @param {String} workingName The name to give temporary files creates during the minification process.
|
||||||
@@ -58,7 +58,10 @@
|
|||||||
function Minify(source, workingName, onComplete) {
|
function Minify(source, workingName, onComplete) {
|
||||||
// create the destination directory if it doesn't exist
|
// create the destination directory if it doesn't exist
|
||||||
if (!fs.existsSync(distPath)) {
|
if (!fs.existsSync(distPath)) {
|
||||||
fs.mkdirSync(distPath);
|
// avoid errors when called as a npm executable
|
||||||
|
try {
|
||||||
|
fs.mkdirSync(distPath);
|
||||||
|
} catch(e) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
this.compiled = {};
|
this.compiled = {};
|
||||||
@@ -291,17 +294,20 @@
|
|||||||
name = this.workingName,
|
name = this.workingName,
|
||||||
uglified = this.uglified;
|
uglified = this.uglified;
|
||||||
|
|
||||||
// save the Closure Compiled version to disk
|
// avoid errors when called as a npm executable
|
||||||
fs.writeFileSync(path.join(distPath, name + '.compiler.js'), compiled.source);
|
try {
|
||||||
fs.writeFileSync(path.join(distPath, name + '.compiler.js.gz'), compiled.gzip);
|
// save the Closure Compiled version to disk
|
||||||
|
fs.writeFileSync(path.join(distPath, name + '.compiler.js'), compiled.source);
|
||||||
|
fs.writeFileSync(path.join(distPath, name + '.compiler.js.gz'), compiled.gzip);
|
||||||
|
|
||||||
// save the Uglified version to disk
|
// save the Uglified version to disk
|
||||||
fs.writeFileSync(path.join(distPath, name + '.uglify.js'), uglified.source);
|
fs.writeFileSync(path.join(distPath, name + '.uglify.js'), uglified.source);
|
||||||
fs.writeFileSync(path.join(distPath, name + '.uglify.js.gz'), uglified.gzip);
|
fs.writeFileSync(path.join(distPath, name + '.uglify.js.gz'), uglified.gzip);
|
||||||
|
|
||||||
// save the hybrid minified version to disk
|
// save the hybrid minified version to disk
|
||||||
fs.writeFileSync(path.join(distPath, name + '.hybrid.js'), hybrid.source);
|
fs.writeFileSync(path.join(distPath, name + '.hybrid.js'), hybrid.source);
|
||||||
fs.writeFileSync(path.join(distPath, name + '.hybrid.js.gz'), hybrid.gzip);
|
fs.writeFileSync(path.join(distPath, name + '.hybrid.js.gz'), hybrid.gzip);
|
||||||
|
} catch(e) { }
|
||||||
|
|
||||||
// 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)
|
||||||
@@ -324,7 +330,7 @@
|
|||||||
module.exports = minify;
|
module.exports = minify;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// read the JavaScript source file from the first argument if the script
|
// read the Lo-Dash source file from the first argument if the script
|
||||||
// was invoked directly (e.g. `node minify.js source.js`) and write to
|
// was invoked directly (e.g. `node minify.js source.js`) and write to
|
||||||
// the same file
|
// the same file
|
||||||
(function() {
|
(function() {
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
if (module != require.main) {
|
if (module != require.main) {
|
||||||
module.exports = postprocess;
|
module.exports = postprocess;
|
||||||
} else {
|
} else {
|
||||||
// read the JavaScript source file from the first argument if the script
|
// read the Lo-Dash source file from the first argument if the script
|
||||||
// was invoked directly (e.g. `node post-compile.js source.js`) and write to
|
// was invoked directly (e.g. `node post-compile.js source.js`) and write to
|
||||||
// the same file
|
// the same file
|
||||||
(function() {
|
(function() {
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pre-process a given Lo-Dash source, preparing it for minification.
|
* Pre-process a given Lo-Dash `source`, preparing it for minification.
|
||||||
*
|
*
|
||||||
* @param {String} source The source to process.
|
* @param {String} source The source to process.
|
||||||
* @returns {String} Returns the processed source.
|
* @returns {String} Returns the processed source.
|
||||||
@@ -361,7 +361,7 @@
|
|||||||
module.exports = preprocess;
|
module.exports = preprocess;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// read the JavaScript source file from the first argument if the script
|
// read the Lo-Dash source file from the first argument if the script
|
||||||
// was invoked directly (e.g. `node pre-compile.js source.js`) and write to
|
// was invoked directly (e.g. `node pre-compile.js source.js`) and write to
|
||||||
// the same file
|
// the same file
|
||||||
(function() {
|
(function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user