首页 文章

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

提问于
浏览
3

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

.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文件中都有相同的错误 . 有谁知道如何解决这些问题?

4 回答

  • 4

    1)使用以下模块将以下模块添加到 devDependencies

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

    2)在 package.json 中添加 eslintConfig 部分:

    "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

  • -2

    将eslint包 locally 安装到您的项目中 .

    $yarn add eslint --dev
    

    理想情况下,可以通过下面的命令生成配置文件.eslintrc,遗憾的是它安装了错误版本的peerDependencies,导致了我们的linting错误 .

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

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

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

    编辑包含以下内容的.eslintrc文件

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

    *注意:请根据您的编码规则,您遵循的环境编辑eslintrc文件 . 参考developer-guide

  • 10

    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();
    };
    
  • 1

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

    npm install -g eslint

相关问题