DH Lint is a tool for generating project specific javascript and sass linting configuration files.
npm install @doghouse/dh-lint --save-dev
DH Lint can be configured via the command line by running the following command in your project root:
npm exec dh-lint-install
you will then be prompted to answer a series of questions in order to set up the config files for your project:
- What framework is this project using?
- Would you like to generate an .eslintrc.yaml config file?
- Would you like to generate an sass-lint.yml config file?
- Would you like to generate a babel.config.js file?
- Would you like to update your package.json file with linting scripts?
The config files generated in your projects root directory both extend framework specific config files defined in this package. The generated files can be extended and overridden further by defining your own settings within them. For documentation on how to add your own rules or settings, click on the links listed under the Dependencies section of this README file.
The base eslint config file in this package extends from the eslint-config-airbnb
Stylelintrc.yml configuration
Dh-lint scans your stylesheets based on the chosen framework using Stylelint and Stylelint-scss. You have the flexibility to modify the config and make the required adjustments in the .stylelintrc.yml file. For instance,
---
extends: "./node_modules/@doghouse/dh-lint/config/sasslint/laravel.yml"
# Override rules
rules:
comment-no-empty: null
selector-class-pattern: null
declaration-empty-line-before: null
If you opted to update your package.json file with linting scripts, then you may use the following commands to lint your project.
npm run lint:js
Will scan your javascript files and log any errors or warnings associated with your code.npm run lint:js-fix
Will attempt to fix any errors that eslint has found with your code.npm run lint:sass
Will scan your styles directory and log any errors or warnings associated with your stylesheets.npm run lint:sass-fix
Will attempt to fix any errors that sass-lint has found within your stylesheets.npm run lint:vue
Will scan your directory containing vue elements and log any errors or warnings associated with your vue components.npm run lint:vue-fix
Will attempt to fix any errors that eslint has found within your vue components.npm run lint
Will scan your directory containing sass, js and vue elements and log any errors or warnings associated with your assets.npm run lint-fix
Will attempt to fix any errors that eslint has found within your stylesheets, js and vue components.
Note: If you choose to have your errors automatically fixed, you are still responsible for this code, So please review the changes made before you commit them.
This project depends on eslint for javascript linting and stylelint for sass linting.
Currently supported frameworks are:
- Drupal 8|9|10
- Magento 2
- Laravel
If you wish to add support for other framework, please email Doghouse Agency. Otherwise feel free to create a pull request.