tags : React, JavaScript
プロジェクトの始め方
ライブラリ
yarn add @chakra-ui/react @emotion/react @emotion/styled framer-motionprettier
.prettierrc を作る
singleQuote: true
trailingComma: "all"
semi: false
printWidth: 120eslint
ライブラリを入れる
yarn add -D eslint-config-prettier eslint-config-standard eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-node eslint-plugin-promise eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-storybook @typescript-eslint/eslint-plugin @types/eslint @emotion/eslint-plugin.eslintrc.yml
env:
browser: true
es2021: true
extends:
- "next"
- "next/core-web-vitals"
- 'plugin:react/recommended'
- standard
- 'plugin:import/errors'
- 'plugin:import/warnings'
- 'plugin:import/typescript'
- 'plugin:@typescript-eslint/recommended'
- 'plugin:@typescript-eslint/recommended-requiring-type-checking'
- 'prettier'
parser: '@typescript-eslint/parser'
parserOptions:
ecmaFeatures:
jsx: true
ecmaVersion: 12
project: './tsconfig.eslint.json'
sourceType: 'module'
tsconfigRootDir: '.'
plugins:
- react
- '@typescript-eslint'
- 'import'
- 'jsx-a11y'
- 'react'
- 'react-hooks'
- '@emotion'
root: true
rules:
no-use-before-define: 'off'
'@typescript-eslint/no-use-before-define': 'error'
"@typescript-eslint/explicit-function-return-type": 0
"@typescript-eslint/explicit-module-boundary-types": 0
"@typescript-eslint/no-misused-promises":
- error
- checksVoidReturn: false
quotes: 'warn'
'@typescript-eslint/ban-types':
- error
- extendDefaults: true
types:
'{}': false
object: false
'react-hooks/rules-of-hooks': 'error'
'react-hooks/exhaustive-deps': 'off'
'import/no-extraneous-dependencies':
- error
- devDependencies:
['.storybook/**', 'stories/**', '**/*/*.story.*', '**/*/*.stories.*', '**/__specs__/**', '**/*/*.spec.*', '**/__tests__/**', '**/*/*.test.*']
'@emotion/pkg-renaming': 'error'
no-unused-vars: 'off'
'@typescript-eslint/no-unused-vars':
- warn
- args: after-used
argsIgnorePattern: ^_
vars: all
varsIgnorePattern: ^_
ignoreRestSiblings: false
overrides:
- files: ['*.tsx']
rules:
'react/prop-types': 'off'
settings:
react:
version: 'detect'