javascript - วิธีแก้ปัญหา "ไม่พบการกำหนดค่าสำหรับกฎ '@typescript-eslint/rule-name'"
ฉันพยายามที่จะเพิ่มการคอมไพล์ TypeScript ให้กับโปรเจค Javascript ที่มีอยู่แล้ว
เท่าที่ฉันทราบ สิ่งนี้ควรเป็นไปได้ (แม้กระทั่งง่าย) และคุณสามารถค่อยๆ แพร่กระจาย TypeScript ผ่านฐานโค้ดได้ โชคไม่ดี นี่ไม่ใช่สิ่งที่ฉันเห็น — หลังจากเพิ่ม TypeScript และพยายามเริ่มโปรเจกต์ ฉันได้รับข้อผิดพลาดนี้สำหรับทุกไฟล์ในโปรเจกต์:
Definition for rule '@typescript-eslint/rule-name' was not foundไม่มีกรณีใดของสตริง rule-name อยู่ในซอร์สโค้ดของฉันเลย
นี่คือ tsconfig.json ของฉัน:
{
"compilerOptions": {
"baseUrl": "src",
"noImplicitAny": false,
"sourceMap": true,
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"allowSyntheticDefaultImports": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"esModuleInterop": true,
"jsx": "react",
"skipLibCheck": true
},
"include": [
"src",
"types"
],
"exclude": [
"node_modules",
"build"
]
}
ฉันได้ลองเพิ่ม "checkJs": false ลงในการตั้งค่าและรีสตาร์ท แต่ก็ไม่ได้เปลี่ยนอะไรเลย
ฉันไม่สามารถหาข้อมูลอะไรเกี่ยวกับปัญหา "rule-name" นี้ทางออนไลน์ได้จริงๆ ดูเหมือนว่านี่จะเป็นข้อความตัวอย่างประเภทหนึ่ง แต่ฉันก็ไม่สามารถหาที่มาของมันได้
มีใครพอจะเสนออะไรที่อาจช่วยให้ฉันสามารถสร้างโปรเจกต์นี้ได้บ้างไหม?
คำตอบ #1
ข้อผิดพลาดที่คุณพบเกิดจาก ESLint และหมายความว่าคุณมีกฎใน .eslintrc ของคุณซึ่งไม่มีอยู่ในปลั๊กอินใด ๆ ของคุณ สิ่งนี้อาจเกิดขึ้นหากคุณทำตามคู่มือการใช้งานสำหรับ @typescript-eslint/eslint-plugin แต่ไม่ได้แทนที่ตัวแทน rule-name ด้วยชื่อกฎจริงตามที่เห็นที่นี่ https://www.npmjs.com/package/@typescript-eslint/eslint-plugin
คำตอบ #2
สำหรับฉัน มันก็เพียงพอที่จะเพิ่ม plugin:@typescript-eslint/recommended ในไฟล์ .eslintrc
"extends": [
...<otherExtentions>...
"plugin:@typescript-eslint/recommended"
]
คำตอบ #3
สำหรับผู้ที่ไม่ต้องการเพียงแค่ปิดการใช้งาน ESLint แต่ต้องการให้มันทำงาน การรัน npm update อาจแก้ปัญหาได้ ในกรณีของฉัน การอัปเดตเพียง @typescript-eslint/parser และ @typescript-eslint/eslint-plugin ไม่เพียงพอ แต่หลังจาก npm update คำเตือนก็หายไปและ ESLint ก็ทำงานได้ตามปกติ
ควรจำเอาไว้ด้วยว่าสิ่งนี้เป็นจุดเด่นจากผู้เขียนแพ็กเกจ:
เป็นสิ่งสำคัญที่คุณต้องใช้หมายเลขเวอร์ชันเดียวกันสำหรับ @typescript-eslint/parser และ @typescript-eslint/eslint-plugin
การตั้งค่าชุดแพ็กเกจอย่างละเอียดเพิ่มเติมบน npmjs
