Package Exports
- @netlify/eslint-config-node
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@netlify/eslint-config-node) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Linting and formatting configuration shared by Netlify Node.js repositories:
- ESLint
- Prettier
- Editorconfig
.gitattributes
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 husky@4- Add a
.eslintrc.jsfile 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
rulesandoverridescan be tweaked for the specific project.
- Add the following
.prettierrc.jsonto the root of the project:
"@netlify/eslint-config-node/.prettierrc.json"- Add the following
commitlint.config.jsto the root of the project:
module.exports = { extends: ['@commitlint/config-conventional'] }- Copy the
.editorconfigand.gitattributesfiles relativity to the root of the project. - Add the following properties to the
package.json. Please replace theconfigglobbing expressions to match the files where the source JavaScript/Markdown/HTML/JSON/YAML files are located.npm run formatshould also be run duringnpm testandnpm run format:ciduring 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}/**/*.{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
.eslintcacheto the.gitignore