VS Code + TypeScript + ESLint: چگونه میتوانم خطاهای linting را کماهمیتتر از خطاهای کامپایلر کنم؟
ESLint خطاها را با رنگ قرمز زیرخط میکشد. این حواسپرتکن است، زیرا خطاهای کامپایلر از خطاهای linting مهمتر هستند.
برای من، مشکلات لینتینگ ممکن است به هر حال همه هشدار باشند، اما این کمی از موضوع اصلی فاصله دارد - مسئله بزرگ این است که خطاهای کامپایل به وضوح مهمتر از هر نوع مشکل لینتینگ هستند، بنابراین باید برجستهتر باشند.
من متعهد به تولید کدی بدون خطای lint در پایان روز هستم، اما وقتی در میانه تغییرات خود هستید و ترکیبی از مشکلات lint و کامپایل دارید، داشتن مشکلات lint به رنگ قرمز بسیار حواسپرتکننده است.
بهترین راه برای دستیابی به این چیست؟ بهترین گزینهای که تاکنون پیدا کردهام این است که کل تنظیمات linting را رندر کرده و همه چیز را به صورت هشدار دوباره پیکربندی کنم، اما این باعث میشود که نتوانم با قوانین linting که توسط دیگران نگهداری میشوند، بهروز بمانم.
همچنین، من هنوز میخواهم که CI روی تمام مسائل linting متوقف شود، بنابراین دوباره پیکربندی همه چیز به عنوان هشدار به همین دلیل نیز کم بهینه است.
پاسخ شماره ۱
بهروزرسانی: این میتواند در .vscode/settings.json پیکربندی شود:
"eslint.rules.customizations": [
{
"rule": "*",
"severity": "warn"
}
],
پاسخ قدیمی: توضیحی برای «بهترین گزینهای که تاکنون پیدا کردهام»:
npx eslint --print-config src/index.ts >.eslintrc.json
(src/index.ts را با هر فایل منبع نمایندهای که برای پروژه شما منطقی است جایگزین کنید.)
این یک پیکربندی بدون بخش "extends" ایجاد میکند اما همانند قبل کار میکند با این تفاوت که یک پیکربندی صریح برای هر قانون شامل میشود.
حال به سادگی "error" را با "warn" در .eslintrc.json با روش مورد علاقه خود جایگزین کنید.
شاید بخواهید بخش "extends" را از پیکربندی قبلی خود بازیابی کنید، به این ترتیب اگر پروژههای پیکربندی eslint که دنبال میکنید بهروز شوند، قوانین جدید ظاهر خواهند شد. با این حال، آنها به رنگ قرمز خواهند بود، بنابراین باید این فرآیند را دوباره اجرا کنید (یا قوانین جدید را بهصورت دستی پیکربندی کنید).
برای اینکه این هشدارها همچنان در CI شکست بخورند، --max-warnings 0 را به دستور eslint که در CI اجرا میشود اضافه کنید.
