تغيير حديث في الفرع الرئيسي main الخاص بـ Discourse (https://github.com/discourse/discourse/commit/e84d7c9f26ed) عطل طريقة فحص الأكواد (linting) التي نستخدمها في الإضافات المخصصة التي نعمل عليها.
كان عنوان طلب الدمج/التغيير كما يلي:
DEV: تحديث
bin/lintليعمل بشكل صحيح مع الإضافات غير المدمجة
لذا أتساءل عما إذا كنا نرتكب خطأً جوهريًا في سير عمل فحص الأكواد لدينا (cc @david).
كيف أقوم بفحص الأكواد (Linting)
كانت طريقتي في استخدام bin/lint هي تشغيله من جذر مشروع Discourse وتحديد مسار الإضافة داخل مجلد الإضافات:
bin/lint --fix plugins/my-custom-plugin
توقف هذا عن العمل مع التغيير المذكور أعلاه. يظهر pnpm أخطاءً بشأن تشغيله داخل مجلد إضافة، ثم يفشل في العثور على الملفات. وإليك مثالًا من مخرجات الخطأ:
> تم تشغيل pnpm داخل مجلد إضافة. إعادة التنفيذ مع --ignore-workspace...
NoFilesFoundError: لم يتم العثور على أي ملفات تطابق النمط "plugins/zlb-community/assets/stylesheets/common/atoms/category-button.scss, plugins/zlb-community/assets/stylesheets/common/atoms/category-icon.scss, plugins/zlb-community/assets/stylesheets/common/atoms/icon-info.scss, plugins/zlb-community/assets/stylesheets/common/atoms/user-pill.scss, plugins/zlb-community/assets/stylesheets/common/base/grid.scss, plugins/zlb-community/assets/stylesheets/common/base/normalize.scss, plugins/zlb-community/assets/stylesheets/common/base/rich-text.scss, plugins/zlb-community/assets/stylesheets/common/base/stack.scss, plugins/zlb-community/assets/stylesheets/common/index.scss, plugins/zlb-community/assets/stylesheets/common/molecules/card.scss, plugins/zlb-community/assets/stylesheets/common/molecules/expander.scss, plugins/zlb-community/assets/stylesheets/common/molecules/header.scss, plugins/zlb-community/assets/stylesheets/common/molecules/user-pill-list.scss, plugins/zlb-community/assets/stylesheets/common/organisms/category-header.scss, plugins/zlb-community/assets/stylesheets/common/templates/lobby.scss, plugins/zlb-community/assets/stylesheets/community-sidebar.scss, plugins/zlb-community/assets/stylesheets/user_home.scss, plugins/zlb-community/assets/stylesheets/common/atoms/badge.scss".
at standalone (file:///Users/max/code/bitcrowd/zlb/discourse/plugins/zlb-community/node_modules/.pnpm/stylelint@17.5.0_typescript@5.9.3/node_modules/stylelint/lib/standalone.mjs:293:43)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
كان يعمل بشكل مثالي من قبل. كيف يمكنني (ما لم أعود إلى التغيير السابق…) فحص الأكواد فقط بشكل عام باستخدام bin/lint في الجذر؟ لكن هذا بالطبع يستغرق وقتًا أطول بكثير.
هل يجب تنفيذ ذلك بطريقة مختلفة؟