[React Native] Atom (Nuclide)에서 Linter 도입

소개



React Native 프로젝트에서 Atom 편집기를 사용하여 개발하고 있습니다.
다음은 Atom (Nuclide 패키지)을 사용하는 환경에서 JavaScript의 Linter를 사용할 수 있도록했을 때의 메모입니다.

lint란?



소스 코드의 구문을 구문 분석하는 프로그램.
linter를 도입하면 코드의 구문 검사를 자동으로 해줍니다.

도입 절차



버전은 npm 8.3.0, npm 5.5.1.

Atom 패키지 설치



Atom의 Settings 또는 apm으로 다음 패키지를 설치합니다.
  • linter
  • linter-eslint
  • linter-ui-default

  • 기타 요청한 패키지를 설치합니다.

    다음 경고가 표시되면 Disable Linter 또는 Disable Diagnostics 중 하나를 선택합니다.



    이번은 Disable Linter를 선택.
    lint의 결과는 atom-ide의 diagnostics UI에 표시됩니다.

    샘플 앱 만들기



    동작 확인을 위한 앱을 만듭니다.
    $ npm install -g react-native-cli
    $ react-native init AwesomeProject
    $ cd AwesomeProject
    

    npm 모듈 설치


    eslintbabel-eslint를 설치합니다.
    $ npm install eslint --save-dev
    $ npm install babel-eslint --save-dev
    

    이번에는 airbnb/javascript: JavaScript Style Guide을 사용하고 싶으므로 eslint-config-airbnb를 설치합니다.
    $ npm install eslint-config-airbnb --save-dev
    

    프로젝트의 import { AppRegistry } from 'react-native'; 코드에 대해 Atom에서 오류가 발생했으므로 eslint-plugin-import도 설치합니다.
    $ npm install eslint-plugin-import --save-dev
    

    .eslintrc 파일 만들기



    프로젝트의 루트 디렉토리에 .eslintrc를 만듭니다.

    eslintrc
    {
      "extends": "airbnb",
      "parser": "babel-eslint",
      "ecmaFeatures": {
        "classes": true,
      },
      rules: {
        // React Native ではJSファイルにJSXを書く
        'react/jsx-filename-extension': ['error', { extensions: ['.js', '.jsx'] }],
        // React Nativeでは画像を相対パスで読み込む
        'global-require': 'off',
      },
    }
    

    동작 확인



    Atom을 다시 시작하고 코드를 작성합니다.
    아래와 같이 린터가 경고를 내게 되었습니다.



    사이고에게



    React Native 프로젝트에서 Atom에 Linter를 도입하는 절차를 소개했습니다.
    그리고는 프로젝트에 맞추어 rules 등을 커스터마이즈 해 가면 좋을 것 같습니다.

    참고


  • 아톰
  • Nuclide | Nuclide is built as a single package on top of Atom to provide hackability and the support of an active community. It provides a first-class development environment for React Native, Hack and Flow projects.
  • Getting Started · React Native
  • javascript/packages/eslint-config-airbnb at master · airbnb/javascript
  • Linting for React Native – pvtl – Medium
  • react-native에 ESLint(airbnb style)를 적용했을 때의 비포 애프터 - Qiita
  • ESLint를 Atom에 도입하고 React 구문에도 대응하는 Airbnb의 JS 스타일 가이드 사용 |
  • 좋은 웹페이지 즐겨찾기