From 48e17ab308a996928c965c7f29a07735af1b9391 Mon Sep 17 00:00:00 2001 From: Kinka Huang Date: Wed, 5 Aug 2015 23:03:52 +0800 Subject: [PATCH] support arguments input for CLI --plugin using the parseQuery function of loader-utils, and get arguments for the plugin in the option --plugin. for example: `webpack --plugin DefinePlugin?{a:1,b:2}` --- bin/convert-argv.js | 15 ++++++++++++++- package.json | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/bin/convert-argv.js b/bin/convert-argv.js index 83d7be441..3f82c7988 100644 --- a/bin/convert-argv.js +++ b/bin/convert-argv.js @@ -193,6 +193,19 @@ module.exports = function(optimist, argv, convertOptions) { } function loadPlugin(name) { + var loadUtils = require("loader-utils"); + var args = null; + try { + var p = name && name.indexOf("?"); + if (p > -1) { + args = loadUtils.parseQuery(name.substring(p)); + name = name.substring(0, p); + } + } catch(e) { + console.log("Invalid plugin arguments" + e + "."); + process.exit(-1); + } + var path; try { path = resolve.sync(process.cwd(), name); @@ -208,7 +221,7 @@ module.exports = function(optimist, argv, convertOptions) { throw e; } try { - return new Plugin(); + return new Plugin(args); } catch(e) { console.log("Cannot instantiate plugin " + name + ". (" + path + ")"); throw e; diff --git a/package.json b/package.json index b64e18fda..c648b8613 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "js-beautify": "^1.5.10", "json-loader": "~0.5.1", "less-loader": "^2.0.0", + "loader-utils": "^0.2.11", "mocha": "~2.2.0", "mocha-lcov-reporter": "0.0.2", "raw-loader": "~0.5.0",