J’essaie d’exécuter mon installation de développement sur mon ordinateur portable Linux.
J’ai un script qui récupère les versions de Ruby, imagemagick et nodejs à partir de discourse_docker et les définit avec asdf. Voici un extrait :
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
Mais lorsque j’exécute bin/ember-cli, j’obtiens ceci :
./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 est la version dans Discourse. Pourquoi ai-je besoin d’une version différente pour le développement que celle utilisée par Discourse ?
Lorsque je mets à jour vers 18.18.0 et que j’exécute ensuite ember-cli, j’obtiens une erreur de syntaxe : « SyntaxError: Unexpected token in JSON at position 219260 ». . . quelque chose que je n’arrive pas tout à fait à comprendre.
Que dois-je essayer maintenant ?
Existe-t-il un moyen fiable de vérifier que mon environnement de développement est approprié pour le développement ? Il semble qu’une fois par mois, je passe une heure ou plus à essayer de faire fonctionner mon système de développement. Est-ce que les gens (comme @sam et @falco) utilisent vraiment l’environnement de développement Docker ? Peut-être devrais-je cibler ce conteneur pour obtenir les versions de Ruby et Node ?