|
|
|
# minimatch
|
|
|
|
|
|
|
|
A minimal matching utility.
|
|
|
|
|
|
|
|
[](http://travis-ci.org/isaacs/minimatch)
|
|
|
|
|
|
|
|
|
|
|
|
This is the matching library used internally by npm.
|
|
|
|
|
|
|
|
Eventually, it will replace the C binding in node-glob.
|
|
|
|
|
|
|
|
It works by converting glob expressions into JavaScript `RegExp`
|
|
|
|
objects.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
var minimatch = require("minimatch")
|
|
|
|
|
|
|
|
minimatch("bar.foo", "*.foo") // true!
|
|
|
|
minimatch("bar.foo", "*.bar") // false!
|
|
|
|
```
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
Supports all glob features.
|
|
|
|
|
|
|
|
See:
|
|
|
|
|
|
|
|
* `man sh`
|
|
|
|
* `man fnmatch`
|
|
|
|
* `man 5 gitignore`
|
|
|
|
|
|
|
|
### Departures from zsh/bash/ksh/sh
|
|
|
|
|
|
|
|
If the pattern starts with a `!` character, then it is negated.
|
|
|
|
|
|
|
|
If a pattern starts with `#`, then it is treated as a comment, and
|
|
|
|
will not match anything. (Use `\#` to match a literal `#` at the
|
|
|
|
start of a line.)
|
|
|
|
|
|
|
|
The double-star `**` is always supported, instead of requiring a special
|
|
|
|
flag.
|
|
|
|
|
|
|
|
If an escaped pattern has no matches, and the `null` flag is not set,
|
|
|
|
then minimatch.match returns the pattern as-provided, rather than
|
|
|
|
interpreting the character escapes. For example,
|
|
|
|
`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
|
|
|
|
`"*a?"`.
|
|
|
|
|
|
|
|
## Functions
|
|
|
|
|
|
|
|
### minimatch(path, pattern, options)
|
|
|
|
|
|
|
|
Main export. Tests a path against
|
|
|
|
the pattern using the options.
|
|
|
|
|
|
|
|
### minimatch.filter(pattern, options)
|
|
|
|
|
|
|
|
Returns a function that tests its
|
|
|
|
supplied argument, suitable for use with `Array.filter`.
|
|
|
|
|
|
|
|
### minimatch.match(list, pattern, options)
|
|
|
|
|
|
|
|
Match against the list of
|
|
|
|
files, in the style of fnmatch or glob. If nothing is matched, then
|
|
|
|
return the pattern (unless `{ null: true }` in the options.)
|
|
|
|
|
|
|
|
### minimatch.makeRe(pattern, options)
|
|
|
|
|
|
|
|
Make a regular expression object
|
|
|
|
from the pattern.
|
|
|
|
|
|
|
|
## Options
|
|
|
|
|
|
|
|
All options are `false` by default.
|
|
|
|
|
|
|
|
### debug
|
|
|
|
|
|
|
|
Dump a ton of stuff to stderr.
|
|
|
|
|
|
|
|
### null
|
|
|
|
|
|
|
|
Return an empty list from minimatch.match, instead of a list
|
|
|
|
containing the pattern itself.
|
|
|
|
|
|
|
|
### nocase
|
|
|
|
|
|
|
|
Perform a case-insensitive match.
|
|
|
|
|
|
|
|
### cache
|
|
|
|
|
|
|
|
An LRU cache with `.get(k)` and `.set(k,v)` methods. By
|
|
|
|
default, an instance of `node-lru-cache` is used, with 1000 max
|
|
|
|
entries.
|
|
|
|
|
|
|
|
### slash
|
|
|
|
|
|
|
|
If set, then `a/*` will match `a/` as well as `a/b`.
|
|
|
|
|
|
|
|
### matchBase
|
|
|
|
|
|
|
|
If set, then patterns without slashes will be matched
|
|
|
|
against the basename of the path if it contains slashes. For example,
|
|
|
|
`a?b` would match `xyz/123/acb`.
|
|
|
|
|
|
|
|
### partial
|
|
|
|
|
|
|
|
Internal. Used by `minimatch.makeRe`.
|
|
|
|
|
|
|
|
### dot
|
|
|
|
|
|
|
|
Allow patterns to match paths starting with a period, even if
|
|
|
|
the pattern does not explicitly start with a period.
|