From d28f9f50d90952b85833c0a9796b8db6fb13382a Mon Sep 17 00:00:00 2001 From: evenstensberg Date: Mon, 26 Aug 2019 16:46:43 +0200 Subject: [PATCH] fix: support both webpack versions --- bin/utils/convert-argv.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/bin/utils/convert-argv.js b/bin/utils/convert-argv.js index dc285de9e2f..5d26546aabc 100644 --- a/bin/utils/convert-argv.js +++ b/bin/utils/convert-argv.js @@ -5,7 +5,6 @@ const interpret = require("interpret"); const prepareOptions = require("./prepareOptions"); const webpackConfigurationSchema = require("../config/webpackConfigurationSchema.json"); const validateSchema = require("webpack").validateSchema; -const WebpackOptionsValidationError = require("webpack").WebpackOptionsValidationError; const findup = require("findup-sync"); module.exports = function(...args) { @@ -137,11 +136,20 @@ module.exports = function(...args) { function processConfiguredOptions(options) { if (options) { - const webpackConfigurationValidationErrors = validateSchema(webpackConfigurationSchema, options); - if (webpackConfigurationValidationErrors.length) { - const error = new WebpackOptionsValidationError(webpackConfigurationValidationErrors); - console.error(error.message, `\nReceived: ${typeof options} : ${JSON.stringify(options, null, 2)}`); - process.exit(-1); // eslint-disable-line + let error; + try { + const errors = validateSchema(webpackConfigurationSchema, options); + if (errors && errors.length > 0) { + const { WebpackOptionsValidationError } = require("webpack"); + error = new WebpackOptionsValidationError(errors); + } + } catch (err) { + error = err; + } + + if (error) { + console.error(error.message); + process.exit(-1); } } else { options = {};