web-dev-qa-db-ja.com

Node.js ExpressアプリケーションでEslintを構成する方法

jsアプリケーション。このアプリケーションではeslintを使用する必要があります。私は https://www.npmjs.com/package/eslint-config-airbnb を使用しており、VS Codeエディターでprettierプラグインを使用しています。

.eslintrc

{
  "extends": "airbnb"
}

Eslintプラグイン https://marketplace.visualstudio.comitems?itemName = dbaeumer.vscode-eslint とnpmパッケージを追加した後、VS Codeが完全なプロジェクトで多くのエラーを表示しているのがわかります。

エラーがほとんどない

[eslint] Definition for rule 'jsx-a11y/href-no-hash' was not found (jsx-a11y/href-no-hash)
[eslint] Expected linebreaks to be 'LF' but found 'CRLF'. (linebreak-style)
[eslint] Unexpected unnamed function. (func-names)
[eslint] Missing space before function parentheses. (space-before-function-paren)
[eslint] Strings must use singlequote. (quotes)
[eslint] Unexpected function expression. (prefer-arrow-callback)
[eslint] Unexpected unnamed function 'bind'. (func-names)
[eslint] Missing space before function parentheses. (space-before-function-paren)

package.json

  "devDependencies": {
    "babel": "^6.23.0",
    "babel-cli": "^6.5.1",
    "babel-core": "^6.9.0",
    "babel-eslint": "^7.2.3",
    "babel-preset-es2015": "^6.5.0",
    "babel-preset-stage-0": "6.5.0",
    "eslint": "^3.19.0",
    "eslint-config-airbnb": "^15.1.0",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-jsx-a11y": "^6.0.2",
    "eslint-plugin-react": "^7.4.0",
    "nodemon": "^1.12.1"
  }

index.js

import request from "superagent";

module.exports = function(req, res, next) {
  const id = "abc";

  request
    .post(url)
    .send(`p1=v1`)
    .send(`p2=v2`)
    .end(function(error, response) {}.bind(this));
  next();
};

enter image description here

各JSファイルで同じ種類のエラー。誰かがこれらを解決する方法を知っていますか?

9
N Sharma

1)devDependenciesに以下のモジュールを追加してください:

npm install --save-dev eslint
npm install --save-dev eslint-config-airbnb-base
npm install --save-dev eslint-plugin-import

2)eslintConfigセクションをpackage.jsonに追加します。

"eslintConfig": {
    "extends": "airbnb-base",
    "env": {
        "es6": true,
        "browser": true
    },
    "rules": {
        "brace-style": [
            "error",
            "stroustrup"
        ],
        "comma-dangle": [
            "error",
            "never"
        ],
        "no-unused-vars": [
            "warn"
        ],
        "no-var": [
            "off"
        ],
        "one-var": [
            "off"
        ]
    }
}

3) eslint.org/docs/rules にアクセスし、調整する警告を検索して、上記のeslintConfigに追加します。

4)プロジェクトのルートにある.eslintrcファイルを削除します。

5)IDEを再起動します

21
John Doherty

Eslintパッケージをローカルにプロジェクトにインストールします。

$yarn add eslint --dev

理想的には、以下のコマンドを使用して構成ファイル.eslintrcを生成できますが、残念ながら、peerDependenciesの誤ったバージョンがインストールされ、変なリンティングエラーが発生します。

$./node_modules/.bin/eslint --init

PeerDependenciesの問題のバージョンを修正するより簡単な方法は、以下のコマンドを使用してインストールします(jsactに関連するパッケージをインストールして、Reactに関連することは何もしない可能性がありますが、対応してください)対応するバージョンのpeerDependenciesとeslint-config-airbnb

$npm info "eslint-config-airbnb@latest" peerDependencies

以下の内容で.eslintrcファイルを編集します

{
  "extends": "airbnb",
  "plugins": [
    "react",
    "jsx-a11y",
    "import"
  ],
  "rules": {
  },
  "env": {
  }
}

*注意:コーディングルール、使用する環境に応じて、eslintrcファイルを編集してください。参照 開発者ガイド

3
Gurucharan M K

ESLintはあなたがする必要があることをメッセージに書きました。読んでください。

このルールの正しいコードは次のとおりです。

import request from 'superagent';

module.exports = (req, res, next) => {
  const id = 'abc';

  request
    .post(url)
    .send('p1=v1')
    .send('p2=v2')
    .end((error, response) => {
      // do something on end
    });
  next();
};
2
Roman Valihura