Skip to content

Instantly share code, notes, and snippets.

@ANDREHORMAN1994
Last active August 10, 2023 00:11
Show Gist options
  • Save ANDREHORMAN1994/c6fa8ee8f9daf7aac5e40409809ae296 to your computer and use it in GitHub Desktop.
Save ANDREHORMAN1994/c6fa8ee8f9daf7aac5e40409809ae296 to your computer and use it in GitHub Desktop.
TRYBE CONFIG (LINT, ESLINT, COVERAGE)

TRYBE CONFIG (LINT, ESLINT, COVERAGE)


DOCS

COMANDOS NPM

npm i eslint-config-trybe-frontend -D
npm i stylelint-config-standard -D
npm i stylelint -D
npm i stylelint-order -D 

CONFIGURAÇÃO COVERAGE

// Arquivo package.json

"scripts": {
  "test": "react-scripts test",
  "test-coverage": "react-scripts test --coverage --watchAll=false",
},
"jest": {
  "coveragePathIgnorePatterns": [
    "src/index.js",
    "serviceWorker.js",
    "reportWebVitals.js",
    "src/fakes",
    "src/routes",
    "src/hooks",
    "src/tests"
  ]
}

CONFIGURAÇÃO LINT

// Arquivo package.json

"scripts": {
  "eslint": "npx stylelint '**/*.css' --fix",
  "lint": "eslint --no-inline-config --no-error-on-unmatched-pattern -c .eslintrc.json . --ext .js,.jsx"
},
"eslintConfig": {
  "extends": [
    "react-app",
    "trybe-frontend"
  ]
},

CONFIGURAÇÃO .eslintignore

src/serviceWorker.js 
cypress.config.js
coverage/*

CONFIGURAÇÃO .eslintrc.json

{
  "extends": "trybe-frontend",
  "rules": {
    ...
  }
}

CONFIGURAÇÃO .stylelintignore

src/index.css
cypress/*
coverage/*

CONFIGURAÇÃO .stylelintrc

Visualizar JSON
{
  "extends": "stylelint-config-standard",
  "plugins": ["stylelint-order"],
  "rules": {
    "at-rule-empty-line-before": "always",
    "at-rule-name-case": "lower",
    "at-rule-name-space-after": "always",
    "at-rule-no-unknown": true,
    "at-rule-no-vendor-prefix": true,
    "at-rule-semicolon-newline-after": "always",
    "at-rule-semicolon-space-before": "always",
    "block-closing-brace-newline-after": "always",
    "block-no-empty": true,
    "block-opening-brace-space-after": "always-single-line",
    "block-opening-brace-space-before": "always",
    "color-hex-case": "lower",
    "color-hex-length": "short",
    "color-named": "always-where-possible",
    "color-no-invalid-hex": true,
    "comment-empty-line-before": "always",
    "comment-no-empty": true,
    "comment-whitespace-inside": "always",
    "custom-property-empty-line-before": "always",
    "declaration-bang-space-after": "always",
    "declaration-bang-space-before": "always",
    "declaration-block-no-duplicate-properties": true,
    "declaration-block-no-redundant-longhand-properties": true,
    "declaration-block-no-shorthand-property-overrides": true,
    "declaration-block-semicolon-newline-after": "always",
    "declaration-block-semicolon-newline-before": "never-multi-line",
    "declaration-block-semicolon-space-after": "always-single-line",
    "declaration-block-single-line-max-declarations": 1,
    "declaration-block-trailing-semicolon": "always",
    "declaration-colon-space-after": "always",
    "declaration-empty-line-before": "never",
    "declaration-no-important": true,
    "font-family-name-quotes": "always-where-required",
    "font-family-no-duplicate-names": true,
    "font-family-no-missing-generic-family-keyword": true,
    "font-weight-notation": "numeric",
    "function-calc-no-unspaced-operator": true,
    "function-comma-space-after": "always",
    "function-comma-space-before": "never",
    "function-linear-gradient-no-nonstandard-direction": true,
    "function-max-empty-lines": 0,
    "function-name-case": "lower",
    "function-parentheses-space-inside": "never",
    "function-url-no-scheme-relative": true,
    "function-url-quotes": "always",
    "function-whitespace-after": "always",
    "indentation": [
      2,
      {
        "baseIndentLevel": 1
      }
    ],
    "keyframe-declaration-no-important": true,
    "length-zero-no-unit": true,
    "linebreaks": "unix",
    "max-empty-lines": 2,
    "max-line-length": 90,
    "max-nesting-depth": 2,
    "media-feature-colon-space-after": "always",
    "media-feature-colon-space-before": "always",
    "media-feature-name-case": "lower",
    "media-feature-name-no-unknown": true,
    "media-feature-name-no-vendor-prefix": true,
    "media-feature-parentheses-space-inside": "always",
    "media-feature-range-operator-space-after": "always",
    "media-feature-range-operator-space-before": "always",
    "media-query-list-comma-space-after": "always",
    "media-query-list-comma-space-before": "never",
    "no-descending-specificity": true,
    "no-duplicate-at-import-rules": true,
    "no-duplicate-selectors": true,
    "no-empty-source": true,
    "no-empty-first-line": true,
    "no-eol-whitespace": true,
    "no-extra-semicolons": true,
    "no-invalid-double-slash-comments": true,
    "no-missing-end-of-source-newline": true,
    "no-unknown-animations": true,
    "number-leading-zero": "always",
    "number-max-precision": 3,
    "number-no-trailing-zeros": true,
    "order/properties-alphabetical-order": true,
    "property-case": "lower",
    "property-no-unknown": true,
    "property-no-vendor-prefix": true,
    "rule-empty-line-before": [
      "always",
      {
        "except": ["after-single-line-comment"]
      }
    ],
    "selector-attribute-brackets-space-inside": "always",
    "selector-attribute-operator-space-after": "always",
    "selector-attribute-operator-space-before": "always",
    "selector-attribute-quotes": "always",
    "selector-combinator-space-after": "always",
    "selector-combinator-space-before": "always",
    "selector-descendant-combinator-no-non-space": true,
    "selector-list-comma-space-after": "always",
    "selector-list-comma-space-before": "never",
    "selector-max-attribute": 3,
    "selector-max-class": 5,
    "selector-max-combinators": 3,
    "selector-max-compound-selectors": 5,
    "selector-max-empty-lines": 0,
    "selector-max-id": 5,
    "selector-max-pseudo-class": 3,
    "selector-max-specificity": "0,5,0",
    "selector-max-type": 5,
    "selector-max-universal": 3,
    "selector-no-qualifying-type": true,
    "selector-no-vendor-prefix": true,
    "selector-pseudo-class-case": "lower",
    "selector-pseudo-class-no-unknown": true,
    "selector-pseudo-class-parentheses-space-inside": "always",
    "selector-pseudo-element-case": "lower",
    "selector-pseudo-element-colon-notation": "single",
    "selector-pseudo-element-no-unknown": true,
    "selector-type-case": "lower",
    "selector-type-no-unknown": true,
    "shorthand-property-no-redundant-values": true,
    "string-no-newline": true,
    "string-quotes": "single",
    "time-min-milliseconds": 100,
    "unit-case": "lower",
    "unit-no-unknown": true,
    "value-keyword-case": "lower",
    "value-list-comma-space-after": "always",
    "value-list-comma-space-before": "always",
    "value-list-max-empty-lines": 0,
    "value-no-vendor-prefix": true
  }
}

PARA IGNORAR ERROS DE LINT

  • Criar um arquivo .env
  • Adicionar o comando ESLINT_NO_DEV_ERRORS=true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment