Skip to content

Commit 64fd810

Browse files
Merge pull request #1065 from webpack/fix/patch
fix: support both webpack versions
2 parents 9487ee5 + 70bf934 commit 64fd810

File tree

12 files changed

+4593
-36449
lines changed

12 files changed

+4593
-36449
lines changed

bin/utils/convert-argv.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ const fs = require("fs");
33
fs.existsSync = fs.existsSync || path.existsSync;
44
const interpret = require("interpret");
55
const prepareOptions = require("./prepareOptions");
6-
const webpackConfigurationSchema = require("../config/webpackConfigurationSchema.json");
7-
const validateSchema = require("webpack").validateSchema;
8-
const WebpackOptionsValidationError = require("webpack").WebpackOptionsValidationError;
96
const findup = require("findup-sync");
7+
const validateOptions = require("./validate-options");
108

119
module.exports = function(...args) {
1210
const argv = args[1] || args[0];
@@ -137,12 +135,7 @@ module.exports = function(...args) {
137135

138136
function processConfiguredOptions(options) {
139137
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
145-
}
138+
validateOptions(options);
146139
} else {
147140
options = {};
148141
}

bin/utils/validate-options.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const webpackConfigurationSchema = require("../config/webpackConfigurationSchema.json");
2+
const validateSchema = require("webpack").validateSchema;
3+
4+
module.exports = function validateOptions(options) {
5+
let error;
6+
try {
7+
const errors = validateSchema(webpackConfigurationSchema, options);
8+
if (errors && errors.length > 0) {
9+
const { WebpackOptionsValidationError } = require("webpack");
10+
error = new WebpackOptionsValidationError(errors);
11+
}
12+
} catch (err) {
13+
error = err;
14+
}
15+
16+
if (error) {
17+
console.error(error.message);
18+
// eslint-disable-next-line no-process-exit
19+
process.exit(-1);
20+
}
21+
};

package-lock.json

Lines changed: 14 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@
143143
"babel-preset-jest": "24.6.0",
144144
"codecov": "3.5.0",
145145
"commitizen": "4.0.3",
146+
"commitlint": "^8.1.0",
146147
"commitlint-config-cz": "0.12.0",
147148
"conventional-changelog-cli": "2.0.21",
148149
"cz-customizable": "6.2.0",

0 commit comments

Comments
 (0)