Bin/ember-cli reclama do node 18.18.1

Estou tentando executar minha instalação de desenvolvimento no meu laptop Linux.

Tenho um script que obtém as versões do Ruby, imagemagick e nodejs do discourse_docker e as define com asdf. Aqui está um trecho dele:

  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

Mas quando executo bin/ember-cli, recebo isto:

./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 é a versão no Discourse. Por que preciso de uma versão diferente para desenvolvimento do que o Discourse está executando?

Quando atualizo para 18.18.0 e então executo ember-cli, recebo um “SyntaxError: Unexpected token in JSON at position 219260”. . . algo que não consigo entender completamente.

Agora, o que devo tentar?

Existe alguma maneira confiável de ver se meu ambiente de desenvolvimento é apropriado para fazer desenvolvimento? Parece que uma vez por mês passo uma hora ou mais tentando fazer meu sistema de desenvolvimento funcionar. As pessoas (como @sam e @falco) realmente usam o ambiente de desenvolvimento docker? Talvez eu devesse ter como alvo esse contêiner para obter as versões de Ruby e Node?

Eu sempre uso a versão LTS mais recente para NodeJS via ASDF.

Eu não executo meu ambiente de desenvolvimento no Docker.

Eu consigo ver como pode ser mais fácil para iniciantes completos, mas seria muito problemático para minhas preferências pessoais.

1 curtida

[quote=“Falco, post:2, topic:315187, username:Falco”]sempre use a LTS mais recente para NodeJS via ASDF.
[/quote]

Incrível. Faz sentido. Acho que é atualizado com pouca frequência o suficiente para que você faça isso manualmente.

Vou tentar isso amanhã.

[quote=“Falco, post:2, topic:315187, username:Falco”]seria muito problemático para minhas preferências pessoais.
[/quote]

É assim que somos iguais. :wink:

1 curtida

Ótimo! Usar o Node 20.9.0 fez com que meu build de desenvolvimento voltasse a funcionar. Estou um pouco confuso sobre por que essa versão funcionaria e a versão no contêiner do Discourse não, e me pergunto como as coisas funcionarão no contêiner com 18.qualquer coisa quando estiver falhando na minha configuração de desenvolvimento, mas acho que verei o que acontece.

Obrigado pela sua ajuda.