Bin/ember-cli が node 18.18.1 について警告

Linux ラップトップで開発環境を実行しようとしています。

discourse_docker から Ruby、imagemagick、nodejs のバージョンを取得し、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 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

しかし、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」というエラーが発生します。 . . 何が起こっているのかよくわかりません。

次に何を試すべきですか?

開発に適した開発環境であることを確認する信頼できる方法はありますか? 毎月、開発システムを機能させるために 1 時間以上費やしているように思えます。人々(@sam@falco など)は本当に Docker 開発環境を使用していますか? Ruby と Node のバージョンを取得するために、そのコンテナをターゲットにすべきでしょうか?

私は常にASDF経由でNodeJSの最新LTSを使用しています。

私はDockerで開発環境を実行していません。

初心者にとっては簡単かもしれませんが、私の個人的な好みには面倒すぎると感じます。

「いいね!」 1

素晴らしい。それは理にかなっています。手動で更新するほど頻繁には更新されないのでしょうね。

明日試してみます。

私たち同じですね。:wink:

「いいね!」 1

素晴らしい!Node 20.9.0 を使用することで、開発ビルドが再び動作するようになりました。なぜそのバージョンで動作し、Discourse コンテナ内のバージョンでは動作しないのか、少し混乱しています。また、開発環境で失敗している 18.whatever バージョンがコンテナ内でどのように機能するのか疑問に思いますが、どうなるか見てみましょう。

ご協力ありがとうございました。