Warum bekomme ich immer wieder "cr" löschen [hübscher / hübscher]?

127

Ich verwende vscode mit Prettier 1.7.2 und Eslint 1.7.0. Nach jedem Zeilenumbruch bekomme ich:

[eslint] Delete 'cr' [prettier/prettier]

Dies ist die .eslintrc.json:

{
  "extends": ["airbnb", "plugin:prettier/recommended"],
  "env": {
    "jest": true,
    "browser": true
  },
  "rules": {
    "import/no-extraneous-dependencies": "off",
    "import/prefer-default-export": "off",
    "no-confusing-arrow": "off",
    "linebreak-style": "off",
    "arrow-parens": ["error", "as-needed"],
    "comma-dangle": [
      "error",
      {
        "arrays": "always-multiline",
        "objects": "always-multiline",
        "imports": "always-multiline",
        "exports": "always-multiline",
        "functions": "ignore"
      }
    ],
    "no-plusplus": "off"
  },
  "parser": "babel-eslint",
  "plugins": ["react"],
  "globals": {
    "browser": true,
    "$": true,
    "before": true,
    "document": true
  }
}

Die .prettierrcDatei:

{
  "printWidth": 80,
  "tabWidth": 2,
  "semi": true,
  "singleQuote": true,
  "trailingComma": "es5",
  "bracketSpacing": true,
  "jsxBracketSameLine": false,
}

Wie kann ich diesen Fehler beseitigen?

bier hier
quelle

Antworten:

265

Versuchen Sie, das "endOfLine":"auto"in Ihrer .prettierrc-Datei (innerhalb des Objekts) festzulegen.

Oder setzen

"prettier/prettier": ["error", {
     ..
    "endOfLine":"auto"
     ..
  }],

innerhalb des Regelobjekts der eslintrc-Datei.

Wenn Sie einen Windows-Computer verwenden, kann endOfLine basierend auf Ihrer Git-Konfiguration "crlf" sein.

Vah Run
quelle
18
Das Ändern der .eslintrcDatei hat bei mir funktioniert, aber nicht bei der .prettierrcDatei. Keine Ahnung warum oder was der Unterschied ist (ich bin neu in allen Tags im OP).
Neo
3
Ich vermute, dass Sie möglicherweise eine schönere Erweiterung im VS-Code benötigen. Das prettierrc ist nur in diesem Szenario gültig.
Vah Run
2
Ändern der Zeilenende-Sequenz von CRLFauf LFfür mich funktioniert, auf einem Windows-Computer
Anup
4
Für einen Neuling wie mich ist das so. Öffnen Sie das .eslintrc.jsonGeschenk in Ihrem Stammverzeichnis ( frontend). Nach Änderungen sieht es wie folgt aus:{ "extends": ["react-app", "prettier"], "plugins": ["prettier"], "rules": { "prettier/prettier": ["error", { "endOfLine": "auto" }] } }
SimpleGuy
Das Hinzufügen zur .prettierrc-Datei hat bei mir funktioniert und ja, ich habe auch die Erweiterung.
Emmanuel Neni
177

Ändern Sie diese Einstellung in VSCode.

Geben Sie hier die Bildbeschreibung ein

Xudong Zhang
quelle
11
Dies würde das Problem beheben, aber nur, bis Sie eine andere Quelldatei mit CRLF geöffnet haben. Die obige Antwort ist effektiver.
BobHy
omg ... das hat mich nach einem Jahr der Frustration gerettet ...
Rotverschiebung
Das hat bei mir funktioniert. Ich habe andere Ansätze ausprobiert, einschließlich der Bearbeitung der Konfigurationsdateien. Keiner von ihnen hat funktioniert.
Amogh Sarpotdar
28

In meinem Windows-Computer habe ich dieses Problem gelöst, indem ich das folgende Codefragment in das rulesObjekt der .eslintrc.jsDatei eingefügt habe, die im Verzeichnis meines aktuellen Projekts vorhanden ist.

    'prettier/prettier': [
      'error',
      {
        endOfLine: 'auto',
      },
    ],

Dies funktionierte auch auf meinem Mac

Jake
quelle
2
Ich füge diesen Blockcode hinzu. Ich habe für mich im Fenster gearbeitet.
Tien Nguyen
Toll! Dies funktionierte sowohl für Windows als auch für Mac
Kaveen Hyacinth
5

Ich verwende git + vscode + windows + vue und nachdem ich das eslint-Dokument gelesen habe: https://eslint.org/docs/rules/linebreak-style

Beheben Sie es schließlich durch:

hinzufügen *.js text eol=lfzu.gitattributes

dann renne vue-cli-service lint --fix

Waket Zheng
quelle