เหตุใดฉันจึงได้รับ Delete 'cr' [สวยกว่า / สวยกว่า] อยู่เรื่อย ๆ


155

ฉันใช้ vscode กับ Prettier 1.7.2 และ Eslint 1.7.0 หลังจากขึ้นบรรทัดใหม่ทุกครั้งฉันจะได้รับ:

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

นี่คือ. 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
  }
}

.prettierrcไฟล์:

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

ฉันจะกำจัดข้อผิดพลาดนี้ได้อย่างไร?

คำตอบ:


317

ลองตั้งค่า"endOfLine":"auto"ในไฟล์. prettierrc ของคุณ (ภายในวัตถุ)

หรือตั้งค่า

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

ภายในอ็อบเจกต์กฎของไฟล์ eslintrc

หากคุณใช้เครื่อง windows endOfLine สามารถ "crlf" ตามการกำหนดค่าคอมไพล์ของคุณ


28
การเปลี่ยน.eslintrcไฟล์ใช้ได้ผลสำหรับฉัน แต่ไม่ใช่.prettierrcไฟล์ ไม่รู้ว่าทำไมหรืออะไรคือความแตกต่าง (ฉันยังใหม่กับแท็กทั้งหมดใน OP)
นีโอ

3
ฉันเดาว่าคุณอาจต้องการส่วนขยาย Prettier ใน VS Code prettierrc จะใช้ได้ในสถานการณ์นั้นเท่านั้น
Vah Run

3
การเปลี่ยนลำดับจุดสิ้นสุดของบรรทัดจากCRLFเป็นใช้LFงานได้สำหรับฉันบนเครื่อง windows
Anup

10
สำหรับมือใหม่อย่างผมนี่คือวิธีการทำ เปิด.eslintrc.jsonปัจจุบันในไดเรกทอรีรากของคุณ ( frontend) หลังจากเปลี่ยนแปลงแล้วจะมีลักษณะดังนี้{ "extends": ["react-app", "prettier"], "plugins": ["prettier"], "rules": { "prettier/prettier": ["error", { "endOfLine": "auto" }] } }
SimpleGuy

การเพิ่มไฟล์. prettierrc ใช้ได้ผลสำหรับฉันและใช่ฉันมีนามสกุลเช่นกัน
Emmanuel Neni

201

เปลี่ยนการตั้งค่านี้ใน VSCode

ใส่คำอธิบายภาพที่นี่


14
วิธีนี้จะแก้ไขปัญหาได้ แต่จนกว่าคุณจะเปิดไฟล์ต้นฉบับอื่นด้วย CRLF คำตอบข้างต้นมีประสิทธิภาพมากขึ้น
BobHy

สิ่งนี้ได้ผลสำหรับฉัน ฉันลองใช้วิธีอื่น ๆ รวมถึงการแก้ไขไฟล์ config แต่ไม่มีวิธีใดที่ใช้ได้
Amogh Sarpotdar

39

ในเครื่อง windows ของฉันฉันแก้ไขสิ่งนี้โดยการเพิ่มข้อมูลโค้ดด้านล่างในrulesobject of .eslintrc.jsfile ที่อยู่ในไดเร็กทอรีโปรเจ็กต์ปัจจุบันของฉัน

    "prettier/prettier": {
      "error",
      {
        "endOfLine": "auto"
      },
    },

สิ่งนี้ใช้ได้กับ Mac ของฉันเช่นกัน


json ที่ไม่ถูกต้องสามารถทำงานได้อย่างไร?
user2541867


3

ในไฟล์. eslintrc.json ในบทบาทด้านข้างเพิ่มรหัสนี้เพื่อแก้ปัญหานี้

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

  }

2

ฉันรู้ว่านี่เก่า แต่ฉันเพิ่งพบปัญหาในทีมของฉัน (mac บางตัว, linux บางตัว, windows บางตัว, vscode ทั้งหมด)

วิธีแก้ปัญหาคือการตั้งค่าบรรทัดสิ้นสุดในการตั้งค่าของ vscode:

.vscode/settings.json

{
    "files.eol": "\n",
}

https://qvault.io/2020/06/18/how-to-get-consistent-line-breaks-in-vs-code-lf-vs-crlf/


2

ลองทำตามนี้ มันใช้ได้กับฉัน:

เส้นด้ายวิ่งผ้าสำลี - แก้ไข

หรือ

npm รันผ้าสำลี - --fix



0

คงที่ - .eslintrc.js ของฉันมีลักษณะดังนี้:

module.exports = {
  root: true,
  extends: '@react-native-community',
  rules: {'prettier/prettier': ['error', {endOfLine: 'auto'}]},
};

0

ในรูทเปิดไฟล์. editorconfig และเปลี่ยน:

end_of_line = lf

ถึง

end_of_line = auto

สิ่งนี้ควรแก้ไขสำหรับไฟล์ใหม่



0

คำตอบทั้งหมดข้างต้นถูกต้อง แต่เมื่อฉันใช้ windows และปิดใช้งานส่วนขยาย Prettier ESLint rvest.vs-code-prettier-eslintปัญหาจะได้รับการแก้ไข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.