Skip to content

ESLint, Prettier and Editorconfig shared by Netlify's Node.js projects

License

Notifications You must be signed in to change notification settings

netlify/eslint-config-node

Folders and files

NameName
Last commit message
Last commit date
May 6, 2024
Jan 14, 2022
Feb 7, 2022
Feb 7, 2022
Oct 16, 2020
Jul 19, 2022
Feb 3, 2022
Oct 16, 2020
Jan 10, 2022
Oct 24, 2020
Nov 28, 2022
Oct 16, 2020
Jun 28, 2021
Oct 16, 2020
Feb 25, 2022
Feb 2, 2022
Jan 20, 2025
Mar 18, 2024
Jul 28, 2022

Repository files navigation

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:

  • Add a .eslintrc.cjs file to the root of the project. Individual rules and overrides can be tweaked for the specific project.
// Use '@netlify/eslint-config-node/esm' if the repository is using pure ES modules
const { overrides } = require('@netlify/eslint-config-node')

module.exports = {
  extends: '@netlify/eslint-config-node',
  rules: {},
  overrides: [...overrides],
}
  • Add the following .prettierrc.json to the root of the project:
"@netlify/eslint-config-node/.prettierrc.json"
  • Copy the commitlint.config.cjs, .editorconfig and .gitattributes files to the root of the project.
  • Add the following properties to the package.json. Please replace the config 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_config_eslint",
    "format:fix:lint": "cross-env-shell eslint --fix $npm_package_config_eslint",
    "format:check-fix:prettier": "run-e format:check:prettier format:fix:prettier",
    "format:check:prettier": "cross-env-shell prettier --check $npm_package_config_prettier",
    "format:fix:prettier": "cross-env-shell prettier --write $npm_package_config_prettier"
  },
  "config": {
    "eslint": "--ignore-path .gitignore --cache --format=codeframe --max-warnings=0 \"{src,scripts,tests,.github}/**/*.{cjs,mjs,js,md,html}\" \"*.{cjs,mjs,js,md,html}\" \".*.{cjs,mjs,js,md,html}\"",
    "prettier": "--ignore-path .gitignore --loglevel=warn \"{src,scripts,tests,.github}/**/*.{cjs,mjs,js,md,yml,json,html}\" \"*.{cjs,mjs,js,yml,json,html}\" \".*.{cjs,mjs,js,yml,json,html}\" \"!package-lock.json\""
  }
}
  • Add .eslintcache to the .gitignore