Bin/ember-cli يشكو من node 18.18.1

أحاول تشغيل تثبيت التطوير الخاص بي على جهاز كمبيوتر محمول يعمل بنظام Linux.

لدي نص برمجي يحصل على إصدارات Ruby و imagemagick و nodejs من discourse_docker ويضبطها باستخدام asdf. إليك جزء منه:

  RUBY_VERSION=$(grep  "^ARG RUBY_VERSION" $DISCOURSE_DOCKER_SRC/image/base/slim.Dockerfile |cut -d'=' -f2)
  echo "GOT RUBY VERSION!! $RUBY_VERSION"
  asdf install ruby $RUBY_VERSION
  asdf global ruby $RUBY_VERSION
  IMAGE_MAGICK_VERSION=$(grep -e ^IMAGE_MAGICK_VERSION ~/src/discourse-repos/discourse_docker/image/base/install-imagemagick|cut -d'"' -f2)
  echo "GOT IMAGE_MAGICK_VERSION: $IMAGE_MAGICK_VERSION"
  asdf install imagemagick $IMAGE_MAGICK_VERSION
  asdf global imagemagick $IMAGE_MAGICK_VERSION
  # 2023-04-24 debian and pop!os have different nodejs versions
  NODE_VERSION=$(docker run discourse/base:release bash -c 'node --version'|cut -d'v' -f2)
  #NODE_VERSION=$(grep node ~/src/discourse-repos/discourse/.tool-versions|awk '{print $2}')
  echo "GOT NODEJS version: $NODE_VERSION"
  asdf install nodejs $NODE_VERSION
  asdf global nodejs $NODE_VERSION

ولكن عندما أقوم بتشغيل bin/ember-cli أحصل على هذا:

./bin/ember-cli 
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
error ember-template-lint@6.0.0: The engine "node" is incompatible with this module. Expected version "^18.18.0 || ^20.9.0 || >=21.1.0". Got "18.17.1"
error Found incompatible module.

18.17.1 هو الإصدار الموجود في Discourse. لماذا أحتاج إلى إصدار مختلف للتطوير عن الذي يعمل به Discourse؟

عندما أقوم بالتحديث إلى 18.18.0 ثم أقوم بتشغيل ember-cli أحصل على “SyntaxError: Unexpected token in JSON at position 219260” . . . شيء لا يمكنني فهمه تمامًا.

ماذا أجرب الآن؟

هل هناك طريقة موثوقة لمعرفة أن بيئة التطوير الخاصة بي مناسبة للتطوير؟ يبدو أنه مرة واحدة في الشهر أقضي ساعة أو أكثر في محاولة جعل نظام التطوير الخاص بي يعمل على الإطلاق. هل يستخدم الناس (مثل @sam و @falco) بيئة تطوير Docker حقًا؟ ربما يجب أن أستهدف حاوية تلك للحصول على إصدارات Ruby و Node؟

أنا دائمًا أختار أحدث إصدار LTS لـ NodeJS عبر ASDF.

أنا لا أشغل بيئة التطوير الخاصة بي على Docker.

يمكنني أن أرى كيف قد يكون الأمر أسهل للمبتدئين تمامًا، ولكنه سيكون مزعجًا جدًا لتفضيلاتي الشخصية.

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

[quote=“Falco, post:2, topic:315187, username:Falco”]دائماً استخدم أحدث إصدار LTS لـ NodeJS عبر ASDF.
[/quote]

رائع. هذا منطقي. أعتقد أنه يتم تحديثه بشكل غير متكرر بما يكفي لدرجة أنك تقوم بذلك يدوياً.

سأجرب ذلك غداً.

[quote=“Falco, post:2, topic:315187, username:Falco”]سيكون الأمر مزعجًا للغاية لتفضيلاتي الشخصية.
[/quote]

هذا هو ما يجعلنا متشابهين. :wink:

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

عظيم! استخدام Node 20.9.0 أعاد بناء التطوير الخاص بي للعمل مرة أخرى. أنا مرتبك قليلاً لماذا ستعمل هذه النسخة ولماذا لن تعمل النسخة الموجودة في حاوية Discourse، وأتساءل كيف ستعمل الأمور في الحاوية مع 18.whatever عندما تفشل في إعداد التطوير الخاص بي، ولكن أعتقد أنني سأرى ما سيحدث.

شكراً لمساعدتك.