fix: support both webpack versions · webpack/webpack-cli@d28f9f5

@@ -5,7 +5,6 @@ const interpret = require("interpret");

55

const prepareOptions = require("./prepareOptions");

66

const webpackConfigurationSchema = require("../config/webpackConfigurationSchema.json");

77

const validateSchema = require("webpack").validateSchema;

8-

const WebpackOptionsValidationError = require("webpack").WebpackOptionsValidationError;

98

const findup = require("findup-sync");

1091110

module.exports = function(...args) {

@@ -137,11 +136,20 @@ module.exports = function(...args) {

137136138137

function processConfiguredOptions(options) {

139138

if (options) {

140-

const webpackConfigurationValidationErrors = validateSchema(webpackConfigurationSchema, options);

141-

if (webpackConfigurationValidationErrors.length) {

142-

const error = new WebpackOptionsValidationError(webpackConfigurationValidationErrors);

143-

console.error(error.message, `\nReceived: ${typeof options} : ${JSON.stringify(options, null, 2)}`);

144-

process.exit(-1); // eslint-disable-line

139+

let error;

140+

try {

141+

const errors = validateSchema(webpackConfigurationSchema, options);

142+

if (errors && errors.length > 0) {

143+

const { WebpackOptionsValidationError } = require("webpack");

144+

error = new WebpackOptionsValidationError(errors);

145+

}

146+

} catch (err) {

147+

error = err;

148+

}

149+150+

if (error) {

151+

console.error(error.message);

152+

process.exit(-1);

145153

}

146154

} else {

147155

options = {};