Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

lint-prepush

npm version npm downloads GitHub license Build Status

Run linters on committed files of a GIT Branch๐Ÿ”ฌ

Getting Started ๐Ÿ”ฎ

This package will run linters on your project for the committed files in your branch.

Prerequisites๐Ÿ”ญ

  • This package requires Node.js >=10.
  • A package to manage git hooks.

Installing

npm

npm install --save-dev husky lint-prepush

using yarn:

yarn add --dev husky lint-prepush

Usage

Configure the following scripts in package.json to lint your committed files ๐Ÿ”ง. You can also follow any of the cosmiconfig methods to configure lint-prepush.

  • Here Husky is used for managing git hooks.
{
+ "husky": {
+   "hooks": {
+     "pre-push": "lint-prepush"
+   }
+ },
+ "lint-prepush": {
+   "base": "master",
+    "tasks": {
+      "*.js": [
+        "eslint"
+      ]
+    }
+  }
}

The above scrips will lint the js files while pushing to git. It will terminate the process if there are any errors, otherwise, the changes will be pushed.

Without Errors

WithoutErrors

With Errors

With Erros

Concurrent Tasks

Tasks for a file group will by default run in linear order (eg. "*.js": [ "jest", "eslint"] will run jest first, then after it's done run eslint). If you'd like to run tasks for a file group concurrently instead (eg. jest and eslint in parallel), use the concurrent property like so:

{
+ "lint-prepush": {
+    "tasks": {
+      "*.js": {
+        concurrent: [ "jest", "eslint" ]
+      }
+    }
+  }
}

Verbose

By default when the tasks succeed, there is no output printed to the console. Sometimes you might need to show linter rules configured for warn which should be displayed even if the tasks succeed. In order to achieve this, you can pass the config verbose: true so that the task output is printed to the console when the tasks succeed.

"lint-prepush": {
  "verbose": true,
  "tasks": {
    ...
  }
}

Built With

Contributing

  • If you have any ideas, just open an issue and tell us what you think.
  • Pull requests are warmly welcome, If you would like to contribute to this project.

Versioning

This package use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

See also the list of contributors who participated in this project.

Acknowledgments

License

MIT @ Theena Dayalan