یک اسکریپت Node.js بنویسید که در صورت اجرا یک هوک pre-commit در پوشه .git/hooks ایجاد کند که پیش از هر commit با اجرای eslint --fix روی فایلهای .js، خطاهای قابل اصلاح را رفع و تغییرات اصلاحشده را به staged اضافه کند.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:52 0.0
برای حل این مسئله از Node.js و ماژولهای داخلی مانند fs و child_process استفاده کنید: ابتدا وجود پوشه .git را بررسی کنید، سپس یک فایل هوک شل (bash) در .git/hooks/pre-commit بسازید که دستور npx eslint --fix را روی فایلهای staged یا همه فایلهای .js اجرا کند و پس از آن در صورت تغییر، با git add فایلهای اصلاحشده را به staged برگرداند. نکات: فایل هوک باید حالت اجرایی (chmod +x) داشته باشد، از مسیرهای نسبی استفاده کنید تا در CI هم قابل اجرا باشد و قبل از نصب در مخزن محلی، هوک را در یک شاخه آزمایشی تست کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پیادهسازی یک hook پیش-commit مناسب، بهتر است تنها فایلهای JS که در استیج هستند را به eslint --fix بدهید تا از اصلاح فایلهای غیرمنتظره جلوگیری شود. استفاده از ابزارهایی مانند lint-staged یا Husky در پروژههای بزرگ مدیریت فایلهای استیج را سادهتر و امنتر میکند. اگر بخواهید با یک اسکریپت Node.js این کار را انجام دهید، از git diff --name-only --cached --diff-filter=ACM | grep '\.js$' برای استخراج فایلهای استیجشده استفاده کنید، سپس eslint --fix را روی این فایلها اجرا کرده و در صورت تغییر، فایلهای اصلاحشده را با git add دوباره استیج کنید. همچنین مطمئن شوید hook اجراپذیر است (chmod +x) و از مسیرهای نسبی استفاده کنید تا در CI نیز قابل اجرا باشد.
گزارش