【React Native】 eslint 도입

1. eslint 설치


npm i eslint eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-watch babel-core babel-eslint babel-preset-airbnb babel-preset-react-native -D

2. package.json의 scripts에 추가


"lint": "esw ./src/**",
"lint-watch": "esw -w --changed ./src/**",
"start-ios": "react-native run-ios && npm run lint-watch",
"start-android": "react-native run-android && npm run lint-watch"

package.json


{
    "name": "app",
    "version": "0.0.1",
    "private": true,
    "scripts": {
        "start-ios": "react-native run-ios && npm run lint-watch",
        "start-android": "react-native run-android && npm run lint-watch",
        "lint": "esw app/**",
        "lint-watch": "esw -w --changed app/**",
        "start": "node node_modules/react-native/local-cli/cli.js start",
        "test": "jest"
    },
    "dependencies": {
        "react": "16.0.0-alpha.12",
        "react-native": "0.47.1"
    },
    "devDependencies": {
        "babel-jest": "20.0.3",
        "babel-preset-react-native": "3.0.0",
        "eslint": "^4.5.0",
        "eslint-config-airbnb": "^15.1.0",
        "eslint-plugin-import": "^2.7.0",
        "eslint-plugin-jsx-a11y": "^6.0.2",
        "eslint-plugin-react": "^7.2.1",
        "eslint-watch": "^3.1.2",
        "jest": "20.0.4",
        "react-test-renderer": "16.0.0-alpha.12"
    },
    "jest": {
        "preset": "react-native"
    }
}
view raw

3. ESLint 구성 파일 작성



파일 이름: .eslintrc
파일 경로: 프로젝트 루트
{
  "parser": "babel-eslint",
  "extends": "airbnb",
  "plugins": ["react", "jsx-a11y", "import"],
  "rules": {
    "react/jsx-filename-extension": ["off"],
    "linebreak-style": ["off"],
    "no-undef": ["error"],
    "react/sort-comp": ["off"],
    "react/prefer-stateless-function": ["off"]
  },
  "globals": {
    "it": 0,
    "expect": 0,
    "describe": 0,
    "navigator": 0
  }
}

디렉토리 구성





완성



이런 식으로 콘솔에 표시


참고

좋은 웹페이지 즐겨찾기