[レスポンス]ESLint&プリセット設定(airbnbスタイルを適用)

12206 ワード

ESLint構文エラーのキャプチャやコード構文の強制など、コード品質に使用Prettier適用コードの最大長、一重引用符(")、二重引用符("")などのコードスタイルに使用します.

1)Vscode拡張版にESLintとPrettierをインストールする




2)Prettyer取付


^(CARAT)は、後でパッケージのバージョンが更新された場合、Minerバージョンの範囲内での更新が許可されることを示しています.したがって、「save-excel」オプションを設定して、バージョンによってスタイルが変化することに対応します.
$ npm install prettier --save-dev --save-exact

prettyerチェックと修復のテスト

//test.js
let func=function 
( )
    {
  let 
foo  
='text'
return     foo}
上に落書きしたテスト.次のコマンドを使用してjsファイルを確認できます.
$ npx prettier test.js
ひどいテストもあります次のコマンドを使用してjsファイルを変更できます.
$ npx prettier --write test.js

3)eslintインストール


Eslintはprettyerと同様に開発に必要なパッケージなのでdevDependenciesにインストールします.
$ npm install eslint --save-dev

ESLint検査と修復のテスト

//test.js
let foo = text;;
上に落書きしたテスト.jsファイルは以下のコマンドでチェックできます.
$ npx eslint test.js
ひどいテストもあります次のコマンドを使用してjsファイルを変更できます.
$ npx eslint test.js --fix

4)airbnb JSスタイルのインストール

$ npx install-peerdeps --dev eslint-config-airbnb
peerdepsコマンドを使用することで、airbnbをインストールする際に必要なプラグインがインストールされます.

5)eslintとprettyerの衝突防止の設定

eslint-config-prettier: prettyerと重複するフォーマット規則を無効にするためにインストールされます.eslint-plugin-prettier: eslintにprettyerルールを追加するためにインストールします.
(prettyerで認識されたコードのフォーマットエラーをESLintエラーとして出力するため)
$ npm install eslint-plugin-prettier eslint-config-prettier --save-dev

6)eslint設定ファイルの作成


.eslintrc.jsonファイルを生成するときに、次の内容を追加します.
{
    "env": { 
        "browser": true, 
        "es6": true,
        "node": true 
    },
    "extends": ["airbnb", "plugin:prettier/recommended"],
    "rules": {
        "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }]
    }
}

  • Envセクション(ドキュメントやsettimeoutなどの変数はブラウザで使用される変数であり、設定されていない場合はESLintエラーとみなされます.同様にnodeやes 6で使用される変数に設定してもエラーは発生しません)
    https://eslint.org/docs/user-guide/configuring/language-options#specifying-environments

  • extendsセクション

  • 上にインストールしたairbnb Jestyleを適用するには、airbnbを追加します.
  • plugin:prettier/recommendedを追加することで、prettyerルールをeslintルールに追加し、prettyerと競合するeslintルールを閉じる役割を果たすことができます.
    最終的にeslint-config-prettiereslint-plugin-prettierを適用するために作成された

  • rulesセクション
  • "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }](Component.jsなどのjsファイルでjsx構文を使用するときに発生するエラーを解決できます.)

  • 以下を参照して追加するルールがある場合は、さらに記述できます.
    https://eslint.org/docs/rules/
  • 7)Prettyer設定ファイルの作成


    prettyerは基本的にプロジェクトルートディレクトリにあります.pretiercファイルのルールに従って操作します.プロジェクトにこのファイルがない場合は、デフォルト値に設定します.
    // .prettierrc.js
    // 일부 규칙을 추가했다.
    // 그리고 주석을 적기 위해 json이 아닌 js파일로 생성하였음.
    
    module.exports = {
        singleQuote: true,
        // 문자열은 singleQuote로 ("" -> '')
        semi: true,
        //코드 마지막에 세미콜론이 있게 formatting
        tabWidth: 4,
        // 들여쓰기 너비는 4칸
        trailingComma: 'all',
        // 배열 키:값 뒤에 항상 콤마를 붙히도록 formatting
        printWidth: 80,
        // 코드 한줄이 maximum 80칸
        arrowParens: 'avoid',
        // 화살표 함수가 하나의 매개변수를 받을 때 괄호를 생략하게 formatting
        endOfLine: "auto",
        // windows에 뜨는 'Delete cr' 에러 해결
    };

    8) VSCode setting


    ctrl+を押しながら設定を開き、UserまたはWorkspaceスペースで設定します.
    workspace에서 설정했을 경우
    {
        // Set the default
        "editor.formatOnSave": true,
        // Enable per-language
        "[javascript]": {
          "editor.formatOnSave": false
        },
        "editor.codeActionsOnSave": {
          // For ESLint
          "source.fixAll.eslint": true
        },
        "eslint.alwaysShowStatus": true,
        "prettier.disableLanguages": ["js"],
        "files.autoSave": "onFocusChange",
    }
    "[javascript]": {
          "editor.formatOnSave": false
    },
  • Vscodeに組み込まれているJavaScriptフォーマット機能を使用せずにPrettyer Extensionを使用するように設定します.
  • "editor.codeActionsOnSave": {
      // For ESLint
      "source.fixAll.eslint": true
    },
  • を設定し、ESLintの自動修復を有効にします.
    "eslint.alwaysShowStatus": true,
  • Vscodeの下部にESLintを設定して表示
    "prettier.disableLanguages": ["js"],
  • ESLintに関連付けられたPrettyerを使うためだそうです.(パスに触れないので…)
  • "files.autoSave": "onFocusChange",
  • を設定して、エディタからフォーカスを移動したときにファイルを自動的に保存します.

    結果👍