Bin/ember-cli se queja de node 18.18.1

Estoy intentando ejecutar mi instalación de desarrollo en mi portátil Linux.

Tengo un script que obtiene las versiones de Ruby, imagemagick y nodejs de discourse_docker y las establece con asdf. Aquí hay una parte de él:

  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

Pero cuando ejecuto bin/ember-cli obtengo esto:

./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 es la versión en Discourse. ¿Por qué necesito una versión diferente para el desarrollo que la que está ejecutando Discourse?

Cuando actualizo a 18.18.0 y luego ejecuto ember-cli, obtengo un “SyntaxError: Unexpected token in JSON at position 219260”. . . algo que no puedo entender del todo.

¿Ahora qué intento?

¿Hay alguna forma fiable de ver que mi entorno de desarrollo es apropiado para hacer desarrollo? Parece que una vez al mes paso una hora o más intentando que mi sistema de desarrollo funcione. ¿La gente (como @sam y @falco) realmente usa el entorno de desarrollo docker? ¿Quizás debería apuntar a ese contenedor para obtener las versiones de Ruby y Node?

Siempre uso la última LTS para NodeJS a través de ASDF.

No ejecuto mi entorno de desarrollo en Docker.

Puedo ver cómo puede ser más fácil para los principiantes totales, pero sería demasiado problemático para mis preferencias personales.

1 me gusta

[quote=“Falco, post:2, topic:315187, username:Falco”]Siempre usa la última LTS para NodeJS a través de ASDF.
[/quote]

Genial. Tiene sentido. Supongo que se actualiza con poca frecuencia como para hacerlo manualmente.

Lo intentaré mañana.

[quote=“Falco, post:2, topic:315187, username:Falco”]Sería demasiado problemático para mis preferencias personales.
[/quote]

Así es como somos iguales. :wink:

1 me gusta

¡Genial! Usar Node 20.9.0 vuelve a hacer que mi compilación de desarrollo funcione. Estoy un poco confundido sobre por qué esa versión funcionaría y la versión en el contenedor de Discourse no, y me pregunto cómo funcionarán las cosas en el contenedor con 18.loquesea cuando está fallando en mi configuración de desarrollo, pero supongo que veré qué sucede.

Gracias por tu ayuda.