phpro/grumphp
GrumPHP is a Composer plugin that installs Git hooks to run quality checks on every commit. It executes configured tasks like tests and linters, blocks failing commits, and helps teams enforce coding standards and best practices automatically.
Stylelint is a modern linter that helps you avoid errors and enforce conventions in your styles.
If you'd like to install it globally:
npm install -g stylelint
If you'd like install it as a dev dependency of your project:
npm install --save-dev stylelint
Done. See the Stylelint Getting Started guide for more info.
It lives under the stylelint namespace and has the following configurable parameters:
# grumphp.yml
grumphp:
tasks:
stylelint:
bin: node_modules/.bin/stylelint
triggered_by: [css, scss, sass, less, sss]
whitelist_patterns:
- /^resources\/css\/(.*)/
config: ~
config_basedir: ~
ignore_path: ~
ignore_pattern: ~
syntax: ~
custom_syntax: ~
ignore_disables: ~
disable_default_ignores: ~
cache: ~
cache_location: ~
formatter: ~
custom_formatter: ~
quiet: ~
color: ~
report_needless_disables: ~
report_invalid_scope_disables: ~
report_descriptionless_disables: ~
max_warnings: ~
output_file: ~
bin
Default: null
The path to your stylelint bin executable. Not necessary if stylelint is in your $PATH. Can be used to specify path to project's stylelint over globally installed stylelint.
Note: It is possible to add
node_modules/.binto the grumphp paths in order for it to be automatically discovered as well:# grumphp.yml grumphp: environment: paths: - node_modules/.bin
triggered_by
Default: [css, scss, sass, less, sss]
This is a list of extensions which will trigger the Sylelint task.
whitelist_patterns
Default: []
This is a list of regex patterns that will filter files to validate. With this option you can specify the folders containing javascript files and thus skip folders like /tests/ or the /vendor/ directory. This option is used in conjunction with the parameter triggered_by.
For example: to whitelist files in resources/css/ (Laravel's CSS directory) and assets/css/ (Symfony's CSS directory) you can use:
whitelist_patterns:
- /^resources\/css\/(.*)/
- /^assets\/css\/(.*)/
config
Default: null
Path to a JSON, YAML, or JS file that contains your configuration object. (stylelint.io).
config_basedir
Default: null
Absolute path to the directory that relative paths defining "extends" and "plugins" are relative to. Only necessary if these values are relative paths. (stylelint.io).
ignore_path
Default: null
A path to a file containing patterns describing files to ignore. The path can be absolute or relative to process.cwd(). By default, stylelint looks for .stylelintignore in process.cwd(). (stylelint.io).
ignore_pattern
Default: null
Pattern of files to ignore (in addition to those in .stylelintignore). (stylelint.io).
syntax
Default: null
Specify a syntax. (stylelint.io).
custom_syntax
Default: null
Specify a custom syntax to use on your code. Use this option if you want to force a specific syntax that's not already built into stylelint. (stylelint.io).
ignore_disables
Default: null
Ignore styleline-disable (e.g. /* stylelint-disable block-no-empty */) comments. (stylelint.io).
disable_default_ignores
Default: null
Disable the default ignores. stylelint will not automatically ignore the contents of node_modules. (stylelint.io).
cache
Default: null
Store the results of processed files so that stylelint only operates on the changed ones. By default, the cache is stored in ./.stylelintcache in process.cwd(). (stylelint.io).
cache_location
Default: null
Path to a file or directory for the cache location. (stylelint.io).
formatter / custom_formatter
Default: null
Specify the formatter to format your results. (stylelint.io).
quiet
Default: null
Only register violations for rules with an "error"-level severity (ignore "warning"-level). (stylelint.io).
color
Default: null
Force enabling/disabling of color. (stylelint.io).
report_needless_disables
Default: null
Produce a report to clean up your codebase, keeping only the stylelint-disable comments that serve a purpose. (stylelint.io).
report_invalid_scope_disables
Default: null
Produce a report of the stylelint-disable comments that used for rules that don't exist within the configuration object. (stylelint.io).
report_descriptionless_disables
Default: null
Produce a report of the stylelint-disable comments without a description (stylelint.io).
max_warnings
Default: null
Set a limit to the number of warnings accepted. (stylelint.io).
output_file
Default: null
Path of file to write a report. stylelint outputs the report to the specified filename in addition to the standard output. (stylelint.io).
other settings
Any other stylelint settings should be able to be set through a stylelint config file.
How can I help you explore Laravel packages today?