fix: replace micromatch
with picomatch
#7951
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR replaces all
micromatch
usage withpicomatch
.Vitest uses
tinyglobby
in some places andtinyglobby
usespicomatch
(SuperchupuDev/tinyglobby#64 (comment)), so the behavior will be more consistent (micromatch supports slightly more syntaxes). Vite usespicomatch
and does not usemicromatch
.This PR should also reduce the package size a bit.
Explanation for each commit:
micromatch.isMatch
withpicomatch.isMatch
. this does not change the behavior because the implementation is same (micromatch sourcecode, picomatch sourcecode)mm(related, forceRerunTriggers).length
withrelated.some(file => pm(forceRerunTriggers)(file))
. the previous implementation behaves differently fromvitest/packages/vitest/src/node/watcher.ts
Line 151 in ba6da4d
micromatch
because all usage was replaced withpicomatch
pm(glob)
call outside the loop so that the glob compilation is done only once. I guess this can be done for other places, but I didn't include that in this PR as it won't be simple as this commit. It is probably worth trying for places that are called many times.Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
pnpm-lock.yaml
unless you introduce a new test example.Tests
pnpm test:ci
.Documentation
pnpm run docs
command.Changesets
feat:
,fix:
,perf:
,docs:
, orchore:
.