---
tags: 專案
---
# Eslint設定(for react project)
```javascript=
module.exports = {
'env': {
'browser': true,
'node': true,
'es2021': true,
},
'extends': [
'eslint:recommended',
'plugin:react/recommended',
],
'parserOptions': {
'ecmaFeatures': {
'jsx': true,
},
sourceType: 'module',
'ecmaVersion': 'latest',
},
'plugins': [
'react',
],
'rules': {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-unused-vars': 'warn',
'no-extend-native': 'off',
'no-duplicate-imports': 'error',
'no-multiple-empty-lines': 'error',
'no-trailing-spaces': 'error',
'no-multi-spaces': 'error',
'no-var': 'error',
'prefer-promise-reject-errors': 'off',
'standard/no-callback-literal': 'off',
'react/react-in-jsx-scope': 'off',
'generator-star-spacing': 'off',
'comma-dangle': [
'error',
'always-multiline',
],
'line-comment-position': [
'error', {
position: 'above',
},
],
'react/prop-types': 'off',
'comma-spacing': 'error',
'arrow-spacing': [
'error',
{
'before': true,
'after': true,
},
],
'indent': ['warn', 2, { SwitchCase: 1 }],
'key-spacing': ['error', { 'beforeColon': false }],
'quotes': ['error', 'single'],
'space-infix-ops': ['error', { 'int32Hint': false }],
semi: ['error', 'never'],
'eol-last': ['error', 'always'],
'object-curly-spacing': ['error', 'always'],
'prefer-const': 'error',
},
}
```