24
loading...
This website collects cookies to deliver better user experience
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
# js project
$ yarn create next-app staticcheck_jsproject
# ts project
$ yarn create next-app staticcheck_tsproject --ts
.eslintrc
file.{
"extends": ["next", "next/core-web-vitals"]
}
Enable eslint:recommended
. See all rules
{
"extends": [
"eslint:recommended",
"next",
"next/core-web-vitals"
]
}
Maybe improve accessibility rules? See all rules
{
"extends": [
"eslint:recommended",
"plugin:jsx-a11y/recommended",
"next",
"next/core-web-vitals"
]
}
Inform your environment (I need to investigate in node_modules if env
is needed)
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": [
"eslint:recommended",
"next",
"next/core-web-vitals"
]
}
$ yarn add -D prettier eslint-plugin-prettier eslint-config-prettier
.prettierrc
file at the root of your project and define some rules. See more options
{
"trailingComma": "none",
"semi": false,
"singleQuote": true
}
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": [
"eslint:recommended",
"next",
"next/core-web-vitals",
"plugin:prettier/recommended" // always at the end
]
}
eslint-config-next
, shipped with all next11 installation, takes care of the parser, we just need to install and configure the plugin. $ yarn add -D @typescript-eslint/eslint-plugin
plugin:@typescript-eslint/recommended
.
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"next",
"next/core-web-vitals",
"plugin:prettier/recommended" // always at the end
]
}
@typescript-eslint/eslint-plugin
.It is important that you use the same version number for @typescript-eslint/parser and @typescript-eslint/eslint-plugin.
$ yarn add -D @typescript-eslint/parser @typescript-eslint/eslint-plugin
@typescript-eslint/parser
and plugin plugin:@typescript-eslint/recommended
(I haven't done enough tests to know whether parserOptions
object is needed, you can try without it)
{
"env": {
"browser": true,
"es2021": true,
"node": true
},
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 12,
"sourceType": "module"
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"next",
"next/core-web-vitals",
"plugin:prettier/recommended" // always at the end
]
}