From 702ba6aaee165f176b9413bee0d13cf5a51fd879 Mon Sep 17 00:00:00 2001 From: Philipp Spiess Date: Thu, 8 Aug 2024 15:05:52 +0200 Subject: [PATCH] Don't warn about broad globs in vendor folders (#14147) After shipping the new warning that prevents unexpected scanning of all dependencies in 3.4.8, we noticed that it was firing more often than we wanted to. The heuristics we added works by finding broad glob patterns (once that contain `/**/`) and when those are found and are the _sole pattern used to match a file of a known-large directory_, we were showing the warning. The motivation for this is that we have seen time and time again that an incorrect config like `/**/*.js` can cause recursive scans through _all_ dependencies including many minified libraries which greatly impacts performance. In #14140, we were adding two known-large directory names: - `node_modules` (used by npm) - `vendor` (used by PHP) The problem with the `vendor` name though is that it is more generic than we would like it and there are legit use cases to have a folder named `vendor` inside your component folder. Additionally, PHP vendors behave a bit differently and it's not super common to have minified build files in that folder (which is one of the main reasons for the slow builds). Because of this, we decided to revert the change for `vendor` and only scan for `node_modules` going forward. --- CHANGELOG.md | 4 +++- src/lib/content.js | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b48a54b41775..419a9562fb98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -- Nothing yet! +### Fixed + +- No longer warns when broad glob patterns are detecting `vendor` folders ## [3.4.8] - 2024-08-07 diff --git a/src/lib/content.js b/src/lib/content.js index abb0e5840f13..1a9d3c70e741 100644 --- a/src/lib/content.js +++ b/src/lib/content.js @@ -185,7 +185,6 @@ export function resolvedChangedContent(context, candidateFiles, fileModifiedMap) const LARGE_DIRECTORIES = [ 'node_modules', // Node - 'vendor', // PHP ] // Ensures that `node_modules` has to match as-is, otherwise `mynode_modules`