تحديث القوالب والإضافات تلقائيًا إلى تنسيق ملف .gjs

في أحدث إصدار من تكوين التدقيق القياسي لـ Discourse، قمنا بتمكين قاعدة require-strict-mode في ember-template-lint. سيؤدي هذا إلى ظهور خطأ تدقيق لأي ملفات .hbs.

لحل التحذيرات، يجب عليك تحويل جميع قوالب المكونات والمسارات والموصلات إلى ملفات .gjs. لتسهيل ذلك، قمنا ببناء discourse-gjs-codemod، والذي يعتمد على @embroider/template-tag-codemod الخاص بـ Ember.

لاستخدام codemod، تأكد أولاً من تحديث تبعيات التدقيق الخاصة بك عن طريق نسخ أحدث package.json من هيكل المكون الإضافي أو هيكل السمة. بعد ذلك، قم بتشغيل eslint و prettier:

pnpm i
pnpm eslint --fix .
pnpm prettier --write "**/*.{gjs,js,hbs,scss}"

إذا لم يكن من الممكن إصلاح أي مشكلات تلقائيًا، فقم بحلها يدويًا الآن. لا تقم بتشغيل ember-template-lint بعد - من المتوقع أن يفشل.

الآن قم بتشغيل codemod باستخدام هذا الأمر:

pnpm dlx https://github.com/discourse/discourse-gjs-codemod

إذا كانت هناك أي مشكلات لا يمكن حلها تلقائيًا، فسيتم طباعة المعلومات في الطرفية. بمجرد حل المشكلة، قم بتشغيل codemod مرة أخرى.

لمزيد من المعلومات حول تنسيق ملف .gjs، راجع الدليل الرسمي:

9 إعجابات

هل يريد كلمة مرور؟

 *) pfaffman@noreno:~/src/pfaffman/discourse-pfaffmanager$ pnpm dlx https://github.com/discourse/discourse-gjs-codemod
Username for 'https://github.com': pfaffman
Password for 'https://pfaffman@github.com':
/home/pfaffman/.cache/pnpm/dlx/txqdpi2aznswmhsvgh3pgqp3te/1971d72469d-323788:
 ERROR  Command failed with exit code 128: git ls-remote git+ssh://git@github.com/discourse/discourse-gjs-codemod.git HEAD
ERROR: Repository not found.
fatal: Could not read from remote repository.

https://github.com/discourse/discourse-gjs-codemods لا يعمل. ربما لا يزال خاصًا؟

4 إعجابات

:facepalm:
أنت على حق، لقد كانت خاصة. لقد تم فتحها الآن:

5 إعجابات

لقد أحدث ذلك فرقًا كبيرًا! حدثت الكثير من الأشياء.

يسعدني جدًا أنني لست الوحيد الذي يحدث له ذلك. :rofl:

إذا كنت تريد حذف هذه الرسائل الثلاث، فلن يعرف أحد. :slight_smile:

يمكنني نقلها إلى موضوع جديد، ولكن لا يمكنني حذفها. . .

5 إعجابات

ماذا عن هذا؟

                                                                                                                                                           [107/859]
 WARN  تم العثور على مشاكل في تبعيات النظير
.
├─┬ ember-auto-import 2.10.0
│ ├─┬ babel-loader 8.4.1
│ │ └── ✕ التبعية النظيرة المفقودة webpack@">=2"
│ ├─┬ css-loader 5.2.7
│ │ └── ✕ التبعية النظيرة المفقودة webpack@"^4.27.0 || ^5.0.0"
│ ├─┬ style-loader 2.0.0
│ │ └── ✕ التبعية النظيرة المفقودة webpack@"^4.0.0 || ^5.0.0"
│ └─┬ mini-css-extract-plugin 2.9.2
│   └── ✕ التبعية النظيرة المفقودة webpack@^5.0.0
└─┬ ember-source 5.12.0
  ├── ✕ التبعية النظيرة المفقودة @glimmer/component@^1.1.2
  └─┬ ember-auto-import 2.10.0
    └── ✕ التبعية النظيرة المفقودة webpack@^5.0.0
تبعيات النظير التي يجب تثبيتها:
  @glimmer/component@^1.1.2   webpack@">=5.0.0 <6.0.0-0"


تم الإنجاز في 1.6 ثانية باستخدام pnpm v9.15.9
file:///home/pfaffman/.cache/pnpm/dlx/txqdpi2aznswmhsvgh3pgqp3te/1971d8d4970-32e7a4/node_modules/.pnpm/execa@9.6.0/node_modules/execa/lib/return/final-error.js:6
        return new ErrorClass(message, options);
               ^

ExecaError: فشل الأمر مع رمز الخروج 255: '/home/pfaffman/.cache/pnpm/dlx/txqdpi2aznswmhsvgh3pgqp3te/1971d8d4970-32e7a4/node_modules/.pnpm/@embroider+template-
tag-codemod@1.2.1-unstable.ce3535d_@glimmer+component@2.0.0_handlebars@4._arnanpbg4hbtumvl4wyacggoiu/node_modules/@embroider/template-tag-codemod/dist/src/cli.js' '
--relativeLocalPaths=false' '--nativeRouteTemplates=false' '--nativeLexicalThis=false' '--templateInsertion=end' --addNameToTemplateOnly '--customResolver=/home/pfa
ffman/.cache/pnpm/dlx/txqdpi2aznswmhsvgh3pgqp3te/1971d8d4970-32e7a4/node_modules/.pnpm/discourse-gjs-codemod@https+++codeload.github.com+discourse+discourse-gjs-cod
emod+tar.gz+a4bc_2dxbzd2itovnk6l7sa4geot32y/node_modules/discourse-gjs-codemod/custom-resolver.js' '--renamingRules=/home/pfaffman/.cache/pnpm/dlx/txqdpi2aznswmhsvg
h3pgqp3te/1971d8d4970-32e7a4/node_modules/.pnpm/discourse-gjs-codemod@https+++codeload.github.com+discourse+discourse-gjs-codemod+tar.gz+a4bc_2dxbzd2itovnk6l7sa4geo
t32y/node_modules/discourse-gjs-codemod/rules.js' '--renderTests=test/**/*.js' '--routeTemplates=**/templates/**/*.hbs' '--components=**/components/**/*.hbs'

ولكن يبدو أنه قام بتحويل كل القوالب باستثناء عدد قليل منها، وعلى الرغم من أنني لم أفهم السبب بعد، إلا أنني لست متفاجئًا، لأنها تحتوي على بعض الأشياء الغريبة وكنت بصدد إعادة كتابتها على أي حال.

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

أعتقد أن رسالة الاعتماد المماثل (peerdependency) هي على الأرجح مجرد تحذير يمكن تجاهله لأغراض تعديل الكود (codemod).

لست متأكدًا بشأن الخطأ الآخر. هل هناك أي شيء أكثر فائدة في أعلى السجل؟ هل هذا قالب/مكوّن إضافي عام يمكنك مشاركته؟

نعم. أعتقد أن الأخطاء كلها زائفة. فقط شيئان لم يتم تحويلهما. لست متأكدًا لماذا، ولكن كما قلت، كنت أخطط لإعادة كتابة تلك على أي حال.

أعتقد أنه تمكن من إعادة كتابة اثني عشر أو أكثر، لذا فهي معجزة مطلقة!

سأجربها قريبًا على بعض الأشياء الأخرى المتاحة للعامة.

شكرًا!

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