run a command (like linting) on git staged files
OTHER License
run a command (like linting) on git staged files
Install - Usage - Node API - License: Apache-2.0
npm install with-staged
with-staged [PATTERNS] -- <COMMAND>
Run a command on git staged files.
PATTERNS - only run COMMAND for files matching one of the PATTERNS globs. When
no PATTERNS are given, run COMMAND on all staged files.
COMMAND - the command to execute. File names of matching files are appended as
separate arguments.
Example:
$ with-staged '**/*.js' -- standard
runs `standard index.js test.js etc.js`
$ with-staged '**/*.js' -- prettier --write
runs `prettier --write index.js test.js etc.js`
You can use it with husky
for very lightweight linting on git commit
:
{
"devDependencies": {
"husky": "^0.14.0",
"standard": "^11.0.0",
"with-staged": "^1.0.0"
},
"scripts": {
"lint": "standard",
"precommit": "with-staged '**/*.js' -- npm run lint --"
}
}
withStaged(patterns=['**'], opts={}, cb)
Get a filtered list of staged files.
patterns
is an array of micromatch v2 glob patterns.
opts.cwd
can be set to use a different working directory. The default is process.cwd()
.
cb
is a Node-style (err, files)
callback. files
is an array of file names.
lint-staged is the inspiration for this module.
Differences:
lint-staged
{
"lint-staged": {
"**/*.js": [
"prettier --write",
"git add"
]
}
}
with-staged
with-staged '**/*.js' -- prettier --write
with-staged '**/*.js' -- git add