---
# System prepended metadata

title: '[筆記] Eslint'
tags: [前端工具]

---

---
tags: 前端工具
---
# [筆記] Eslint
[參考](https://pjchender.dev/webdev/note-sharable-eslint-config)
[參考安裝](https://ithelp.ithome.com.tw/articles/10215259)
## 安裝
- package.json
```
<!-- 第一次安裝時會用到 -->
"eslint": "eslint --init",
```

```
"lint": "eslint \"src/**/*.{js,jsx}\"",
```
### env
- 讓eslint知道全域變數
```
  env: {
    browser: true,
    'jest/globals': true,
  },
```
- 允許node全域變數
```
  'env': {
    'browser': true,
    'es2021': true,
    "node": true,
  },
```

### parserOptions
- js語法版本

### rules
`error` `warn` `off`

### plugins
[react規則](https://github.com/yannickcr/eslint-plugin-react/tree/master/lib/rules)
[規則](https://eslint.org/docs/rules/)
- 只會載入規則，使用方式要在 `rules` 設定

### extends
- 載入其它開發者的ESLint 設定檔

# options說明
- 檢查props有否正確傳入
```
"react/prop-types": "warn",
```



-----
```
'react/prop-types': 'off',
```

------
## 常用
```javascript=
  'rules': {
    'no-unused-vars': 'warn',
    'no-extend-native': 'off',
    '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 }],
    'no-multiple-empty-lines': 'error',
    'quotes': ['error', 'single'],
    'space-infix-ops': ['error', { 'int32Hint': false }],
    semi: ['error', 'never'],
    'eol-last': ['error', 'always'],
    'object-curly-spacing': ['error', 'always'],
    'no-trailing-spaces': 'error',
    'no-multi-spaces': 'error',
    'no-var': 'error',
    'prefer-const': 'error',
  },
```