1.0.2 • Published 2 years ago

@virtualidentity/quality-gate v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

virtualidentity-quality-gate

Coding quality and standards for biotope projects built on Stencil.

This package gives you default configurations for biotope projects for eslint and stylelint, which will enable you to lint .js, .jsx, .ts, .tsx, .css and .scss files by simply extending the configurations provided.

This package includes the necessary tools and plugins as dependencies for both configurations to run without a hassle, but it will require you to run both eslint and stylelint on your projects.

Installing

  • npm i -D @virtualidentity/quality-gate

Using the recommended configs

Eslint

Create an .eslintrc file and extend the default recommended config like so:

{
  "extends": "./node_modules/@virtualidentity/quality-gate/config/.eslintrc.js"
  // Add any other definition here. Example:
  // "globals": {
  //   "MY_GLOBAL_VARIABLE": true
  //   ...
  // }
}

Run eslint in a script like so:

{
  "scripts": {
    // ...
    "lint:code": "eslint \"./**/*.js\" \"./**/*.ts\""
  }
}

Since you're running eslint natively, check out their documentation on how to run or extend it here.

Stylelint

Create a .stylelintrc file and extend the default recommended config like so:

{
  "extends": "./node_modules/@virtualidentity/quality-gate/config/.stylelintrc.js"
  // Add any other definition here. Example:
  // "rules": {
  //   "unit-whitelist": ["em", "rem", "%", "s"]
  //   ...
  // }
}

Run stylelint in a script like so:

{
  "scripts": {
    // ...
    "lint:style": "stylelint \"./**/*.css\" \"./**/*.scss\""
  }
}

Since you're running stylelint natively, check out their documentation on how to run or extend it here.

Commitlint

Create a .commitlintrc.json file and extend the default recommended config like so:

{
  "extends": ["@virtualidentity/quality-gate/config/.commitlintrc.js"]
  // Add any other definition here.
}

Recommended settings

Stencil

.eslintrc

{
  "extends": "./node_modules/@virtualidentity/quality-gate/config/.eslintrc.js",
  "rules": {
    "class-methods-use-this": 0,
    "no-script-url": 0,
    "react/prop-types": 0,
    "react/jsx-key": 0, // Otherwise eslint will force you to set keys for arrays, even if there aren't any arrays!
  },
}

.stylelintrc

{
  "extends": "./node_modules/@virtualidentity/quality-gate/config/.stylelintrc.js",
  "rules": {
    "selector-class-pattern": ".",
    "selector-no-qualifying-type": null,
    "no-descending-specificity": null
  }
}

Browser support

Create a .browserslistrc file with the following content:

last 2 years and >= 0.5%
not dead
ie 11
firefox esr
# Add any other definition here.

IDEs

To take advantage of the linters' strengths and to ensure no problems during merges, please consider installing the following plugins on your IDE.

If your IDE is not present on this list, please help us by making a PR to include proper plugins for it and ensure everyone shares this knowledge.

Hint: "on-save" linting can be a big help to save development time.

VSCode

  • dbaeumer.vscode-eslint
  • hex-ci.stylelint-plus