Code-style and linting presets cli-tool to quickly scaffold project development.
All stacks use lintstaged to run all linted stacks when code is commited to the git repository. We feel that this is a really nice approach to avoid un-linted code creeping into the codebase.
Because standard lint configuration files are used any related Code-editor plugins should pickup and follow the same ruleset, or when running individual linters directly.
When running stacklint all node and composer packages required to lint the selected stacks are added to your configuration files and individual config files for each stack are also included.
Stacklint is intended to be installed globally so that it can easily be run and there is no need to include the dependency in your project specific package.json.
npm install -g stacklintstacklint [options] <stacks>After installing your lint stacks you will need to run required installs.
npm installcomposer installNote: Because lintstaged installs some git hooks, you should initialise your git repository before running npm install after setting up your stacks.
The following example will setup all required files and packages to lint php and md Markdown files when they are committed to git.
stacklint php md jsonInstalls packages and configs for:
- Lintstaged
- PHP Codesniffer
- Markdownlint
- Jsonlint
stacklint js airbnb vueInstalls packages and config for:
- Lintstaged
- ESLint
- Airbnb extend
- Vue.js plugin
- Babel plugin
You can quickly check which stacks are available by running stacklint -l or stacklint --list.
- js (Javascript. Also required additional stack for style guide. E.g.
airbnb)- airbnb (Airbnb style guide)
- json
- laravel (Use instead of
phpif using laravel) - md (Markdown)
- php (PSR-2)
- scss
- vue (Requires
jsstack)
We welcome any contributions, especially new lint stacks.
If you have any question or problems please open an issue (or submit a PR). Alternatively you can contact me, m2de on Twitter.