fix: support both webpack versions · webpack/webpack-cli@d28f9f5
@@ -5,7 +5,6 @@ const interpret = require("interpret");
55const prepareOptions = require("./prepareOptions");
66const webpackConfigurationSchema = require("../config/webpackConfigurationSchema.json");
77const validateSchema = require("webpack").validateSchema;
8-const WebpackOptionsValidationError = require("webpack").WebpackOptionsValidationError;
98const findup = require("findup-sync");
1091110module.exports = function(...args) {
@@ -137,11 +136,20 @@ module.exports = function(...args) {
137136138137function processConfiguredOptions(options) {
139138if (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 {
147155options = {};