refactor: switch minimatch to micromatch #3538
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.
What does it do?
micromatch is a replacement of minimatch. It supports multiple patterns in an array, without string-to-array conversion, along with other globbing features. It's also faster and updated much more frequently (micromatch vs minimatch). It's already utilized in hexo, indirectly through chokidar dep.
npm ls --depth 5
shows 4 instances of it.Using micromatch@4 is rather drastic since it depends on Node >=8, considering other deps currently use micromatch@3. But it's not a major issue, as Node 6 will be eventually dropped (#3508).
Personally, I would prefer to enable the matchBase option. With this option, I can just use'ignore-this.txt'
to exclude that file (assuming the filename is unique. I'm aware of the underscore ignore), instead of'**/ignore-this.txt'
. When globbing is used, if I want to exclude all.txt
, I only need'*.txt'
, instead of'**/*.txt'
. In the case of #3306, it can be just'abc*'
. The doc needs to be updated though if this behavior is introduced.How to test
github page: https://github.com/weyusi/hexo-testing
Pull request tasks