مشكلة في lint الخاص بالثيم في خطوة "تثبيت تبعيات JS"

لقد نسخت [package.json](https://github.com/discourse/discourse-theme-skeleton/blob/main/package.json) من أحدث نسخة من discourse-theme-skeleton/package.json at main · discourse/discourse-theme-skeleton · GitHub

إنه ليس كبيرًا:

{
private: true,
devDependencies: {
@discourse/lint-configs: "2.21.0",
ember-template-lint: "7.7.0",
eslint: "9.27.0",
prettier: "3.5.3",
stylelint: "16.19.1"
},
engines: {
node: ">= 22",
npm: "please-use-pnpm",
yarn: "please-use-pnpm",
pnpm: "9.x"
},
packageManager: "pnpm@9.15.5"
}

يعمل التدقيق اللغوي مع محاولاتي لتشغيل “The Right Stuff” محليًا، ولكن في GitHub، أحصل على هذا:

Run yarn install --frozen-lockfile
error This project's package.json defines "packageManager": "yarn@pnpm@9.15.5". However the current global version of Yarn is 1.22.22.

Presence of the "packageManager" field indicates that the project is meant to be used with Corepack, a tool included by default with all official Node.js distributions starting from 16.9 and 14.19.
Corepack must currently be enabled by running corepack enable in your terminal. For more information, check out https://yarnpkg.com/corepack.

وهذا في خطوة “تثبيت تبعيات JavaScript”، لذا يبدو أن هذا لا يمكن أن يكون بسبب أي شيء فعلته؟

هذا هو الكود الخاص بي: GitHub - pfaffman/discourse-custom-homepage-for-groups: Discourse theme component to change home page based on user's primary group

إعجاب واحد (1)

FWIW يبدو أن هذه هي الخطوة الإشكالية؟
هل يجب ألا يعمل Yarn على الإطلاق؟

(ملاحظة جانبية: ألا تحب ذلك عندما تستغرق 15 دقيقة لتحديث مستودع، ثم تستغرق مشكلة أخرى ساعات :sweat_smile: )

هذه مشكلتك:

قم بإزالة ملف yarn.lock الخاص بك من المستودع ولكن اترك (وحدّث!) ملف pnpm-lock.yaml الخاص بك.

نقاط إضافية :sports_medal: من الناحية المثالية، كان ينبغي أن يكون هذا طلب سحب (PR) حتى لا تواجه فشلًا في التكامل المستمر (CI) على فرعك الرئيسي.

إعجابَين (2)

هذا صحيح. بدأت في محاولة تذكر فعل ذلك؛ لم يتم أتمتته بعد. لقد وصلت إلى القيام بذلك بنسبة 30٪ تقريبًا من الوقت. :slight_smile:


الآن لدي هذا:

تشغيل pnpm install --frozen-lockfile
 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  لا يمكن المتابعة بالتثبيت المجمد. إعدادات "settings.autoInstallPeers" الحالية لا تتطابق مع القيمة الموجودة في ملف القفل

قم بتحديث ملف القفل الخاص بك باستخدام "pnpm install --no-frozen-lockfile"

لذلك فعلت ما قاله لي، والآن أحصل على:

تشغيل bundle install
لا تقم بتشغيل Bundler بصلاحيات الجذر. تثبيت الحزمة الخاصة بك بصلاحيات الجذر سيعطل هذا
التطبيق لجميع المستخدمين غير الجذر على هذا الجهاز.
تعذر العثور على Gemfile

ولكن عندما أفعل هذا:

 (main *) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ cp ~/src/discourse-repos/discourse-theme-skeleton/pnpm-lock.yaml .
 (main *) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ git add pnpm-lock.yaml
 (main +) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ git commit -m 'their pnpm lock'
[main e195a2e] their pnpm lock
 1 file changed, 1 insertion(+), 1 deletion(-)
 (main) pfaffman@noreno:~/src/pfaffman/discourse-custom-homepage-for-groups$ git push

وأنا متأكد من أن مستودعهم محدث.

هل ترى؟ وحتى أنه يذكرني بأنني أعمل بشكل غير مسؤول على الفرع الرئيسي.

[اقتباس=“pfaffman, المشاركة:5، الموضوع:368423”]

قم بتشغيل pnpm install --frozen-lockfile
 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH لا يمكن المتابعة مع التثبيت المجمد. الإعداد الحالي "settings.autoInstallPeers" لا يطابق القيمة الموجودة في ملف القفل

قم بتحديث ملف القفل الخاص بك باستخدام "pnpm install --no-frozen-lockfile"

[/اقتباس]

أفترض أن هذا مجرد ملف pnpm-lock قديم… قم بتشغيل التثبيت في الدليل.

ولكن عندما شغلت pnpm install --no-frozen-lockfile ثم استخدمت ملف القفل الجديد، أعطاني github خطأ المُجمِّع. يجب أن أكون قادراً على استخدام الموجود في discourse-theme-skeleton، أليس كذلك؟

[اقتباس=“pfaffman، المشاركة: 5، الموضوع: 368423”]
Could not locate Gemfile

[/اقتباس]

أضف ملف Gemfile

إعجاب واحد (1)

انتظر. ملف Gemfile مخصص لـ Ruby، أليس كذلك؟

ولكن هنا:

pfaffman@noreno:~$ cd src/discourse-repos/discourse-theme-skeleton/
 (main) pfaffman@noreno:~/src/discourse-repos/discourse-theme-skeleton$ cp pnpm-lock.yaml  Gemfile.lock Gemfile package.json stylelint.config.mjs ~/src/pfaffman/discourse-custom-homepage-for-groups/

هذه هي الأشياء التي نحتاجها، أليس كذلك؟ اتضح أن stylelint.config.mjs كان قديمًا، لذلك هذا شيء جيد.

على أي حال، لا يزال لدي

 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  لا يمكن المتابعة مع التثبيت المجمد. الإعداد الحالي لـ "settings.autoInstallPeers" لا يتطابق مع القيمة الموجودة في ملف القفل (lockfile).

أعتقد أنه لأي مواصفات، فهو مطلوب بواسطة البرنامج النصي للـ CI.