diff --git a/build.js b/build.js index f6d101c59..27781ec70 100755 --- a/build.js +++ b/build.js @@ -2364,7 +2364,10 @@ /*------------------------------------------------------------------------*/ - // used to specify creating a custom build + // flag used to track if `outputPath` has been used by `callback` + var outputUsed = false; + + // flag used to specify creating a custom build var isCustom = isLegacy || isMapped || isMobile || isModern || isStrict || isUnderscore || /(?:category|exclude|exports|iife|include|minus|plus)=/.test(options) || !_.isEqual(exportsOptions, exportsAll); @@ -2384,8 +2387,12 @@ } if (isDebug && isStdOut) { stdout.write(debugSource); - callback(debugSource); - } else if (!isStdOut) { + callback({ + 'source': debugSource + }); + } + else if (!isStdOut) { + outputUsed = true; callback({ 'source': debugSource, 'outputPath': outputPath || path.join(cwd, basename + '.js') @@ -2394,7 +2401,7 @@ } // begin the minification process if (!isDebug) { - if (outputPath && !isMinify) { + if (outputPath && outputUsed) { outputPath = path.join(path.dirname(outputPath), path.basename(outputPath, '.js') + '.min.js'); } else if (!outputPath) { outputPath = path.join(cwd, basename + '.min.js'); diff --git a/test/test-build.js b/test/test-build.js index e18887d26..60143b362 100644 --- a/test/test-build.js +++ b/test/test-build.js @@ -1030,7 +1030,8 @@ (function() { var commands = [ '-c', - '--stdout' + '-c -d', + '--stdout', ]; commands.forEach(function(command, index) { @@ -1043,7 +1044,7 @@ written = string; }; - build([command, 'exports=', 'include='], function(data) { + build(['exports=', 'include='].concat(command.split(' ')), function(data) { process.stdout.write = write; equal(written, data.source); equal(arguments.length, 1);