最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Eslint with Prettier. Unable to prevent eslint-config-prettier line-length errors - Stack Overflow

programmeradmin2浏览0评论

See Edits at bottom

I have a JavaScript file that I am linting with Eslint. I am using Prettier to format the code.

My personal choice on this file is to increase the line-length beyond the 80 chars that Prettier has as a default to 2000 chars.

So I have a prettierrc.config.js:

module.exports = {
  printWidth: 2000
};

Which works when I format the code, and I have a .eslintrc.js

module.exports = {
  "parserOptions": {
    "ecmaVersion": 6
  },
  "env": {
    "es6": true,
    "browser": true
  },
  "extends": [
    "eslint-config-airbnb-base",
    "eslint-config-prettier"
  ],
  "plugins": [
    "eslint-plugin-import",
    "eslint-plugin-prettier"
  ],
  "rules": {
    "prettier/prettier": ["error", {}],
    "max-len": ["error", {"code": 2000, "ignoreUrls": true}],
    "linebreak-style": 0,
    "no-use-before-define": ["error", { "functions": false, "classes": false }],
    "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
    "no-underscore-dangle": 0,
    "import/no-amd": 0,
    "import/no-dynamic-require": 0,
  },
  "globals": {
    "define": true
  }
};

Everytime I lint the file, it plains about the length of certain lines.

Edit for clarity:

I am using eslint v4.19.1 and prettier 1.10.2. Config files are being read and used correctly.

Edit for additional information 2018/05/30

I have discovered the distinction in the lint errors. Max-len is working correctly, and the value I have provided as an override in rules is being respected.

What the prettier config has a problem with is the length of some of my conditional expressions. I can see it is wanting to put them on new lines with additional white space. This is now the config I am looking to override. it seems to be a different rule to max-len. The example below is a conditional expression with a length of 60 characters and it is triggering a lint error. The whole line is only 84 characters long (* to represent spaces).

**********} else if (firstSessionDate > this.sessionsData[i].SessionStartDateTime) {

See Edits at bottom

I have a JavaScript file that I am linting with Eslint. I am using Prettier to format the code.

My personal choice on this file is to increase the line-length beyond the 80 chars that Prettier has as a default to 2000 chars.

So I have a prettierrc.config.js:

module.exports = {
  printWidth: 2000
};

Which works when I format the code, and I have a .eslintrc.js

module.exports = {
  "parserOptions": {
    "ecmaVersion": 6
  },
  "env": {
    "es6": true,
    "browser": true
  },
  "extends": [
    "eslint-config-airbnb-base",
    "eslint-config-prettier"
  ],
  "plugins": [
    "eslint-plugin-import",
    "eslint-plugin-prettier"
  ],
  "rules": {
    "prettier/prettier": ["error", {}],
    "max-len": ["error", {"code": 2000, "ignoreUrls": true}],
    "linebreak-style": 0,
    "no-use-before-define": ["error", { "functions": false, "classes": false }],
    "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
    "no-underscore-dangle": 0,
    "import/no-amd": 0,
    "import/no-dynamic-require": 0,
  },
  "globals": {
    "define": true
  }
};

Everytime I lint the file, it plains about the length of certain lines.

Edit for clarity:

I am using eslint v4.19.1 and prettier 1.10.2. Config files are being read and used correctly.

Edit for additional information 2018/05/30

I have discovered the distinction in the lint errors. Max-len is working correctly, and the value I have provided as an override in rules is being respected.

What the prettier config has a problem with is the length of some of my conditional expressions. I can see it is wanting to put them on new lines with additional white space. This is now the config I am looking to override. it seems to be a different rule to max-len. The example below is a conditional expression with a length of 60 characters and it is triggering a lint error. The whole line is only 84 characters long (* to represent spaces).

**********} else if (firstSessionDate > this.sessionsData[i].SessionStartDateTime) {
Share Improve this question edited May 30, 2018 at 15:07 freeMagee asked Apr 9, 2018 at 13:49 freeMageefreeMagee 4642 gold badges6 silver badges19 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 1

Based on ESLint's docs, anything you include in rules take precedence over the rules inherited from extends, meaning you can change the rule's behavior partially or pletely.

That means the max-len rule you specified is picked up over the max-len rule from eslint-config-prettier. You have to delete this rule from your config file and ESLint will stop plaining.

发布评论

评论列表(0)

  1. 暂无评论