with-staged
run a command (like linting) on git staged files
Last updated 9 months ago by goto-bus-stop .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install with-staged 
SYNC missed versions from official npm registry.

with-staged

run a command (like linting) on git staged files

Install - Usage - Node API - License: Apache-2.0

npm travis standard

Install

npm install with-staged

Usage

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 --"
  }
}

Node API

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.

Related

lint-staged is the inspiration for this module.

Differences:

  • with-staged is not tested on Windows and probably doesn't work there while lint-staged does
  • with-staged has a tiny dependency tree while lint-staged's is somewhat large
  • with-staged works with older Node versions while lint-staged requires v6+
  • with-staged is configured through command line arguments while lint-staged puts configuration in a separate package.json key
  • with-staged just dumps subprocess output, lint-staged has its own sweet progress UI (may be unnecessary for your use case)

lint-staged

{
  "lint-staged": {
    "**/*.js": [
      "prettier --write",
      "git add"
    ]
  }
}

with-staged

with-staged '**/*.js' -- prettier --write
with-staged '**/*.js' -- git add

License

Apache-2.0

Current Tags

  • 1.0.2                                ...           latest (9 months ago)

3 Versions

  • 1.0.2                                ...           9 months ago
  • 1.0.1                                ...           2 years ago
  • 1.0.0                                ...           2 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 4
Last Day 0
Last Week 0
Last Month 0
Dependencies (2)
Dev Dependencies (8)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |