Bin/ember-cli beschwert sich über Node 18.18.1

Ich versuche, meine Entwicklungsinstallation auf meinem Linux-Laptop auszuführen.

Ich habe ein Skript, das die Versionen für Ruby, imagemagick und nodejs von discourse_docker abruft und sie mit asdf festlegt. Hier ist ein Teil davon:

  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

Aber wenn ich bin/ember-cli ausführe, erhalte ich Folgendes:

./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 ist die Version in Discourse. Warum brauche ich eine andere Version für die Entwicklung als die, die Discourse ausführt?

Wenn ich auf 18.18.0 aktualisiere und dann ember-cli ausführe, erhalte ich einen „SyntaxError: Unexpected token in JSON at position 219260“. . . etwas, das ich nicht ganz verstehen kann.

Was soll ich jetzt versuchen?

Gibt es eine zuverlässige Möglichkeit zu sehen, ob meine Entwicklungsumgebung für die Entwicklung geeignet ist? Es scheint, dass ich einmal im Monat eine Stunde oder länger damit verbringe, mein Entwicklungssystem überhaupt zum Laufen zu bringen. Nutzen Leute (wie @sam und @falco) wirklich die Docker-Entwicklungsumgebung? Vielleicht sollte ich diesen Container anvisieren, um Versionen von Ruby und Node zu erhalten?

Ich gehe immer mit dem neuesten LTS für NodeJS über ASDF.

Ich betreibe meine Entwicklungsumgebung nicht unter Docker.

Ich kann verstehen, wie es für absolute Neulinge einfacher sein mag, aber es wäre für meine persönlichen Vorlieben zu mühsam.

1 „Gefällt mir“

[quote=“Falco, post:2, topic:315187, username:Falco”]Immer die neueste LTS für NodeJS über ASDF verwenden.
[/quote]

Super. Das ergibt Sinn. Ich schätze, es wird selten genug aktualisiert, dass man es von Hand macht.

Das werde ich morgen versuchen.

[quote=“Falco, post:2, topic:315187, username:Falco”]wäre für meine persönlichen Vorlieben zu mühsam.
[/quote]

Da sind wir uns ja gleich. :wink:

1 „Gefällt mir“

Großartig! Die Verwendung von Node 20.9.0 lässt meinen Entwicklungsbuild wieder funktionieren. Ich bin etwas verwirrt, warum diese Version funktionieren würde und die Version im Discourse-Container nicht, und frage mich, wie die Dinge im Container mit 18.whatever funktionieren werden, wenn es in meiner Entwicklungsumgebung fehlschlägt, aber ich schätze, ich werde sehen, was passiert.

Vielen Dank für Ihre Hilfe.