From 6ab99c4e190997c3bae30bf2032fded9f0d5d7b3 Mon Sep 17 00:00:00 2001 From: Ricardo Gobbo de Souza Date: Fri, 27 Feb 2026 13:58:27 -0300 Subject: [PATCH 1/2] fix!: use `compiler.options.mode` to set the default value of `failOnError` --- src/index.js | 1 + src/options.js | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 7c53bcf..34ddac3 100644 --- a/src/index.js +++ b/src/index.js @@ -34,6 +34,7 @@ class ESLintWebpackPlugin { // Generate key for each compilation, // this differentiates one from the other when being cached. this.key = compiler.name || `${this.key}_${(compilerId += 1)}`; + this.options.failOnError ??= compiler.options.mode !== "development"; const excludedFiles = parseFiles( this.options.exclude || [], diff --git a/src/options.js b/src/options.js index 77761d8..78da6a2 100644 --- a/src/options.js +++ b/src/options.js @@ -3,7 +3,7 @@ const { validate } = require("schema-utils"); const schema = require("./options.json"); /** @typedef {import("eslint").ESLint.Options} ESLintOptions */ -/** @typedef {import('eslint').ESLint.LintResult} LintResult */ +/** @typedef {import("eslint").ESLint.LintResult} LintResult */ /** * @callback FormatterFunction @@ -52,7 +52,6 @@ function getOptions(pluginOptions) { extensions: "js", emitError: true, emitWarning: true, - failOnError: true, resourceQueryExclude: [], ...pluginOptions, ...(pluginOptions.quiet ? { emitError: true, emitWarning: false } : {}), From e77ca2d360a7f7f3afa2922774d1e05002249f8b Mon Sep 17 00:00:00 2001 From: Ricardo Gobbo de Souza Date: Fri, 27 Feb 2026 16:13:04 -0300 Subject: [PATCH 2/2] test: update option `failOnError` --- test/multiple-instances.test.js | 6 ++++++ test/utils/conf.js | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/test/multiple-instances.test.js b/test/multiple-instances.test.js index 8e0247c..177ca5c 100644 --- a/test/multiple-instances.test.js +++ b/test/multiple-instances.test.js @@ -10,6 +10,7 @@ describe("multiple instances", () => { { plugins: [ new ESLintPlugin({ + failOnError: true, overrideConfigFile: join( __dirname, "./config-for-tests/eslint.config.mjs", @@ -18,6 +19,7 @@ describe("multiple instances", () => { exclude: "error.js", }), new ESLintPlugin({ + failOnError: true, overrideConfigFile: join( __dirname, "./config-for-tests/eslint.config.mjs", @@ -41,6 +43,7 @@ describe("multiple instances", () => { { plugins: [ new ESLintPlugin({ + failOnError: true, overrideConfigFile: join( __dirname, "./config-for-tests/eslint.config.mjs", @@ -49,6 +52,7 @@ describe("multiple instances", () => { exclude: "good.js", }), new ESLintPlugin({ + failOnError: true, overrideConfigFile: join( __dirname, "./config-for-tests/eslint.config.mjs", @@ -70,6 +74,7 @@ describe("multiple instances", () => { { plugins: [ new ESLintPlugin({ + failOnError: true, overrideConfigFile: join( __dirname, "./config-for-tests/eslint.config.mjs", @@ -78,6 +83,7 @@ describe("multiple instances", () => { exclude: "error.js", }), new ESLintPlugin({ + failOnError: true, overrideConfigFile: join( __dirname, "./config-for-tests/eslint.config.mjs", diff --git a/test/utils/conf.js b/test/utils/conf.js index 4fdf106..dda2752 100644 --- a/test/utils/conf.js +++ b/test/utils/conf.js @@ -24,7 +24,6 @@ export default (entry, pluginConf = {}, webpackConf = {}) => { ignore: false, // TODO: update tests to run both states: test.each([[{threads: false}], [{threads: true}]])('it should...', async ({threads}) => {...}) threads: true, - failOnError: false, ...pluginConf, }), ],