Bin/ember-cli si lamenta di node 18.18.1

Sto cercando di eseguire la mia installazione di sviluppo sul mio laptop Linux.

Ho uno script che ottiene le versioni per Ruby, imagemagick e nodejs da discourse_docker e le imposta con asdf. Ecco una parte di esso:

  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

Ma quando eseguo bin/ember-cli ottengo questo:

./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 è la versione in Discourse. Perché ho bisogno di una versione diversa per lo sviluppo rispetto a quella in esecuzione di Discourse?

Quando aggiorno a 18.18.0 e poi eseguo ember-cli ottengo un “SyntaxError: Unexpected token in JSON at position 219260” . . . qualcosa che non riesco a capire.

Ora cosa provo?

C’è un modo affidabile per vedere che il mio ambiente di sviluppo è appropriato per fare sviluppo? Sembra che una volta al mese passi un’ora o più cercando di far funzionare il mio sistema di sviluppo. Le persone (come @sam e @falco) usano davvero l’ambiente di sviluppo docker? Forse dovrei puntare a quel container per ottenere le versioni di Ruby e Node?

Vado sempre con l’ultima LTS per NodeJS tramite ASDF.

Non eseguo il mio ambiente di sviluppo su Docker.

Posso capire come possa essere più facile per i principianti assoluti, ma sarebbe troppo complicato per le mie preferenze personali.

1 Mi Piace

[quote=“Falco, post:2, topic:315187, username:Falco”]vai sempre con l’ultima LTS per NodeJS tramite ASDF.
[/quote]

Fantastico. Ha senso. Immagino che venga aggiornato di rado, tanto da farlo manualmente.

Ci proverò domani.

[quote=“Falco, post:2, topic:315187, username:Falco”]sarebbe troppo complicato per le mie preferenze personali.
[/quote]

Ecco come siamo uguali. :wink:

1 Mi Piace

Ottimo! Usare Node 20.9.0 ha di nuovo fatto funzionare la mia build di sviluppo. Sono un po’ confuso sul perché quella versione funzioni e la versione nel container Discourse no, e mi chiedo come funzioneranno le cose nel container con 18.qualcosa quando fallisce nella mia configurazione di sviluppo, ma immagino che vedrò cosa succede.

Grazie per il tuo aiuto.