From 2fe17ce9f2274b8c196764e6bb462743b2bb0834 Mon Sep 17 00:00:00 2001 From: JE4NVRG Date: Sun, 29 Mar 2026 22:29:29 -0300 Subject: [PATCH] Fix empty build.includes/excludes arrays breaking the build Empty arrays are truthy in JavaScript, so checks like `if (buildConfig.excludes)` pass even when the array has no entries. This causes generateExcludedRegExp to produce `new RegExp('', 'i')` which matches every file path, excluding all plugins from the build. Add .length checks so empty arrays are treated the same as undefined. Fixes #3786 --- grunt/helpers.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grunt/helpers.js b/grunt/helpers.js index 149356af9..a6690e451 100644 --- a/grunt/helpers.js +++ b/grunt/helpers.js @@ -258,9 +258,9 @@ module.exports = function(grunt) { }; if (buildConfig.jsonext) data.jsonext = buildConfig.jsonext; - if (buildConfig.includes) data.includes = exports.getIncludes(buildConfig.includes, data); - if (buildConfig.excludes) data.excludes = buildConfig.excludes; - if (buildConfig.productionExcludes) data.productionExcludes = buildConfig.productionExcludes; + if (buildConfig.includes?.length) data.includes = exports.getIncludes(buildConfig.includes, data); + if (buildConfig.excludes?.length) data.excludes = buildConfig.excludes; + if (buildConfig.productionExcludes?.length) data.productionExcludes = buildConfig.productionExcludes; if (buildConfig.scriptSafe) { data.scriptSafe = buildConfig.scriptSafe.split(',').map(function(item) { return item.trim();