Bin/ember-cli жалуется на node 18.18.1

Я пытаюсь запустить установку для разработки на своём Linux-ноутбуке.

У меня есть скрипт, который получает версии Ruby, ImageMagick и Node.js из репозитория 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 и pop!os имеют разные версии nodejs
  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.

Понимаю, что для полных новичков это может быть проще, но для моих личных предпочтений это слишком хлопотно.

Отлично. Это логично. Полагаю, обновления происходят достаточно редко, поэтому вы делаете это вручную.

Завтра я попробую.

Вот в этом мы с вами похожи. :wink:

Отлично! Использование Node 20.9.0 снова заставило сборку для разработки работать. Меня немного смущает, почему эта версия работает, а версия в контейнере Discourse — нет, и я задаюсь вопросом, как всё будет работать в контейнере с 18.whatever, если на моей локальной среде разработки это не работает, но, полагаю, я увижу, что произойдёт.

Спасибо за помощь.