Git Product home page Git Product logo

eslint-config-node's Introduction

Build Node

Linting and formatting configuration shared by Netlify Node.js repositories:

How to add to a new Node.js repository

If you're creating a new repository, you can use the following GitHub template. Otherwise, please follow those steps:

  • npm install -D @netlify/eslint-config-node
  • Add a .eslintrc.js file to the root of the project. Based on the type of the project update the content of the file:

Node.js project

const { overrides } = require('@netlify/eslint-config-node')

module.exports = {
  extends: '@netlify/eslint-config-node',
  rules: {},
  overrides: [...overrides],
}

React application

const { overrides } = require('@netlify/eslint-config-node/react_config')

module.exports = {
  extends: '@netlify/eslint-config-node/react_config',
  rules: {},
  overrides: [...overrides],
}

Vanilla JS in HTML files

const { overrides } = require('@netlify/eslint-config-node/vanilla_js_config')

module.exports = {
  extends: '@netlify/eslint-config-node/vanilla_js_config',
  rules: {},
  overrides: [...overrides],
}

Individual rules and overrides can be tweaked for the specific project.

  • Add the following .prettierrc.json to the root of the project:
"@netlify/eslint-config-node/.prettierrc.json"
  • Add the following commitlint.config.js to the root of the project:
module.exports = { extends: ['@commitlint/config-conventional'] }
  • Copy the .editorconfig and .gitattributes files relativity to the root of the project.
  • Add the following properties to the package.json. Please replace the scriptsArgs globbing expressions to match the files where the source JavaScript/Markdown/HTML/JSON/YAML files are located. npm run format should also be run during npm test and npm run format:ci during CI (example).
{
  "scripts": {
    "format": "run-s format:check-fix:*",
    "format:ci": "run-s format:check:*",
    "format:check-fix:lint": "run-e format:check:lint format:fix:lint",
    "format:check:lint": "cross-env-shell eslint $npm_package_scriptsArgs_eslint",
    "format:fix:lint": "cross-env-shell eslint --fix $npm_package_scriptsArgs_eslint",
    "format:check-fix:prettier": "run-e format:check:prettier format:fix:prettier",
    "format:check:prettier": "cross-env-shell prettier --check $npm_package_scriptsArgs_prettier",
    "format:fix:prettier": "cross-env-shell prettier --write $npm_package_scriptsArgs_prettier"
  },
  "scriptsArgs": {
    "eslint": "--ignore-path .gitignore --cache --format=codeframe --max-warnings=0 \"{src,scripts,tests,.github}/**/*.{js,md,html}\" \"*.{js,md,html}\" \".*.{js,md,html}\"",
    "prettier": "--ignore-path .gitignore --loglevel=warn \"{src,scripts,tests,.github}/**/*.{js,md,yml,json,html}\" \"*.{js,yml,json,html}\" \".*.{js,yml,json,html}\" \"!package-lock.json\""
  },
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
      "pre-push": "npm run format"
    }
  }
}
  • Add .eslintcache to the .gitignore

eslint-config-node's People

Contributors

ehmicky avatar erezrokah avatar github-actions[bot] avatar netlify-bot avatar renovate-bot avatar renovate[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.