如何使用nodejs express应用程序配置eslint

N S*_*rma 8 javascript node.js eslint eslint-config-airbnb prettier

js申请.我需要在这个应用程序中使用eslint.我正在使用https://www.npmjs.com/package/eslint-config-airbnb并在VS Code编辑器中使用更漂亮的插件.

.eslintrc

{
  "extends": "airbnb"
}
Run Code Online (Sandbox Code Playgroud)

在添加eslint插件https://marketplace.visualstudio.comitems?itemName = dbaeumer.vscode-eslint和npm package 之后,我看到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)
Run Code Online (Sandbox Code Playgroud)

的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"
  }
Run Code Online (Sandbox Code Playgroud)

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();
};
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

每个JS文件中都有相同的错误.有谁知道如何解决这些问题?

Joh*_*rty 22

1)将以下模块添加到您的devDependencies使用中:

npm install --save-dev eslint
npm install --save-dev eslint-config-airbnb-base
npm install --save-dev eslint-plugin-import
Run Code Online (Sandbox Code Playgroud)

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"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

3)访问eslint.org/docs/rules,搜索要调整的警告并将其添加到eslintConfig上面.

4)删除.eslintrc项目根目录中的文件.

5)重新启动IDE


Gur*_*M K 5

将 eslint 包本地安装到您的项目中。

$yarn add eslint --dev
Run Code Online (Sandbox Code Playgroud)

理想情况下,可以通过以下命令生成配置文件 .eslintrc,不幸的是,它安装了错误版本的 peerDependencies,从而导致了奇怪的 linting 错误。

$./node_modules/.bin/eslint --init
Run Code Online (Sandbox Code Playgroud)

更容易修复 peerDependencies 版本问题的方法,使用下面的命令并安装(我建议你安装与 jsx 相关的包并做出反应,尽管你可能不会做任何与 React 相关的事情)对应版本的 peerDependencies 以及 eslint-config-airbnb

$npm info "eslint-config-airbnb@latest" peerDependencies
Run Code Online (Sandbox Code Playgroud)

使用以下内容编辑 .eslintrc 文件

{
  "extends": "airbnb",
  "plugins": [
    "react",
    "jsx-a11y",
    "import"
  ],
  "rules": {
  },
  "env": {
  }
}
Run Code Online (Sandbox Code Playgroud)

*注意:请根据您的编码规则,您遵循的环境编辑eslintrc文件。请参阅开发人员指南

  • 为什么我们既没有 React 也没有使用 JSX 的应用程序需要 `react` 和 `jsx-a11y` 插件? (3认同)

Pak*_*rro -4

如果你使用的是atom、vs code...也许编辑器需要全局安装eslint。

npm 安装-g eslint