diff --git a/index.js b/index.js index 80e724e..813fbde 100644 --- a/index.js +++ b/index.js @@ -14,6 +14,9 @@ function validateInput(options) { if (typeof options.onBuildEnd === 'string') { options.onBuildEnd = options.onBuildEnd.split('&&'); } + if (typeof options.onExit === 'string') { + options.onExit = options.onExit.split('&&'); + } return options; } @@ -21,6 +24,7 @@ function WebpackShellPlugin(options) { var defaultOptions = { onBuildStart: [], onBuildEnd: [], + onExit: [], dev: true, verbose: false }; @@ -33,6 +37,10 @@ function WebpackShellPlugin(options) { options.onBuildEnd = defaultOptions.onBuildEnd; } + if (!options.onExit) { + options.onExit = defaultOptions.onExit; + } + if (!options.dev) { options.dev = defaultOptions.dev; } @@ -57,7 +65,7 @@ WebpackShellPlugin.prototype.apply = function (compiler) { if (options.onBuildStart.length) { console.log('Executing pre-build scripts'); options.onBuildStart.forEach(function (script) { - exec(script, puts) + exec(script, puts); }); if (options.dev) { options.onBuildStart = []; @@ -69,7 +77,7 @@ WebpackShellPlugin.prototype.apply = function (compiler) { if (options.onBuildEnd.length) { console.log('Executing post-build scripts'); options.onBuildEnd.forEach(function (script) { - exec(script, puts) + exec(script, puts); }); if (options.dev) { options.onBuildEnd = []; @@ -77,6 +85,15 @@ WebpackShellPlugin.prototype.apply = function (compiler) { } callback(); }); + + compiler.plugin("done", function () { + if (options.onExit.length) { + console.log("Executing addiotn scripts befor exit"); + options.onExit.forEach(function (script) { + exec(script, puts); + }); + } + }); }; module.exports = WebpackShellPlugin;