17
votes

Comment changer la version du nœud dans l'étape de provision dans Amplify Console

Je suis confronté au problème que je ne peux pas créer mon application Angular via AWS Amplify Console: "Vous exécutez la version v8.12.0 de Node.js, qui n'est pas prise en charge par Angular CLI 8.0+. La version officielle de Node.js qui est pris en charge est 10.9 ou supérieur. Veuillez visiter https://nodejs.org/en/ pour trouver des instructions sur la mise à jour de Node.js. "

Maintenant, je veux définir la version de nœud par défaut du conteneur docker dans l'étape de fourniture à VERSION_NODE_10 qui est déjà définie dans le conteneur.

version: 0.1
backend:
  phases:
    build:
      commands:
        - '# Execute Amplify CLI with the helper script'
        - amplifyPush --simple
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - node -v
        - npm run-script build
  artifacts:
    baseDirectory: dist/cr-client
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

amplify.yml:

# Framework Versions
ENV VERSION_NODE_8=8.12.0
ENV VERSION_NODE_6=6
ENV VERSION_NODE_10=10
ENV VERSION_NODE_DEFAULT=$VERSION_NODE_8 <-- Change this to $VERSION_NODE_10
ENV VERSION_RUBY_2_3=2.3.6
ENV VERSION_RUBY_2_4=2.4.3
ENV VERSION_RUBY_DEFAULT=$VERSION_RUBY_2_3
ENV VERSION_HUGO=0.51
ENV VERSION_YARN=1.13.0

Quelqu'un sait-il comment modifier la valeur par défaut?


2 commentaires

est-ce que cela aide? aws-amplify.github.io/docs/cli/lambda-node-version-update


Malheureusement non. Je l'ai déjà essayé


3 Réponses :


16
votes

AWS Amplify utilise nvm pour gérer la version du nœud. Essaye ça:

version: 0.1
backend:
  phases:
    build:
      commands:
        - '# Execute Amplify CLI with the helper script'
        - amplifyPush --simple
frontend:
  phases:
    preBuild:
      commands:
        - nvm use $VERSION_NODE_10
        - npm ci
    build:
      commands:
        - nvm use $VERSION_NODE_10
        - node -v
        - npm run-script build
  artifacts:
    baseDirectory: dist/cr-client
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*


4 commentaires

Merci! Une idée comment dire à la console Amplify d'installer et d'utiliser la version de nœud définie dans packages.json?


Merci pour ça. Je cherche également à mettre à jour le fil et les paramètres "Live package updates" de la console ne semblent pas être repris. J'ai également essayé yvm de la même manière que nvm dans cette réponse, mais yvm n'est pas disponible. Avez-vous également une chance de savoir comment spécifier la version du fil utilisé?


Vous pouvez peut-être ajouter les commandes de construction '- curl -o- -L yarnpkg.com/install.sh | bash 'ou' - npm install --global yarn '


Si vous conservez un fichier .nvmrc dans la racine de votre dépôt, il est facile d'installer et d'utiliser la version de nœud de votre choix. Utilisez les commandes nvm install et nvm use , sans nommer une version spécifique. (Malheureusement, la nvm d'Amplify ne semble pas prendre en charge l'option --no --no-progress nvm ajoutée en 2018.)



7
votes

La bonne réponse n'est en fait pas la bonne.

Vous devez utiliser une image de construction personnalisée de NodeJS pour exécuter correctement votre application sans changer la version du nœud par nvm.

Pour faire ça:

  1. Ouvrez la "Console Amplify"
  2. Ouvrez «Toutes les applications»
  3. Choisissez l'application que vous allez changer la version NodeJS
  4. Ouvrez "Paramètres de construction"
  5. Faites défiler jusqu'à la boîte de dialogue "Créer les paramètres de l'image" et cliquez sur le bouton "Modifier"
  6. Dans le menu déroulant "Créer une image" , choisissez l'option "Créer une image"
  7. Un nouveau champ de saisie apparaîtra juste en dessous de cette liste déroulante, écrivez maintenant le nom de l'image Docker (le même que celui utilisé dans Dockefile) que vous recherchez. Par exemple node:12.16.1
  8. sauvegarder
  9. Redéployez n'importe quelle version.

2 commentaires

Voici le fil de discussion github qui décrit plus en détail cette solution avec des images supplémentaires de la configuration de la console Amplify github.com/aws-amplify/amplify-cli/issues/3187


En raison de la limitation de débit du hub docker, cela échoue maintenant par intermittence car l'IP d'amplification est limité en débit! J'ai donc dû revenir à la solution nvm à la place.



2
votes

La réponse acceptée n'a pas fonctionné pour moi.

La seule façon de modifier la version du nœud lors de l'étape de mise à disposition est d'avoir votre propre paramètre de construction.

Cependant, il existe un moyen plus simple d'y parvenir.

Dans mon cas, je voulais la dernière version de node 10. Et l'ajout de l'installation nvm à l'étape de pré-construction a fonctionné.

# Executing command: nvm install 10

2020-09-09T13:36:19.465Z [INFO]: Downloading and installing node v10.22.0...
2020-09-09T13:36:19.544Z [WARNING]: Downloading https://nodejs.org/dist/v10.22.0/node-v10.22.0-linux-x64.tar.gz...
2020-09-09T13:36:19.664Z [WARNING]: ########
2020-09-09T13:36:19.665Z [WARNING]: 11.9%
2020-09-09T13:36:19.765Z [WARNING]: #######
2020-09-09T13:36:19.765Z [WARNING]: ########################                                           43.5%
2020-09-09T13:36:19.832Z [WARNING]: ################################
2020-09-09T13:36:19.832Z [WARNING]: ######################################## 100.0%
2020-09-09T13:36:19.844Z [WARNING]: Computing checksum with sha256sum
2020-09-09T13:36:19.934Z [WARNING]: Checksums matched!

2020-09-09T13:36:20.842Z [INFO]: Now using node v10.22.0 (npm v6.14.6)

Vous pouvez installer et utiliser n'importe quelle version de nœud dans l'amplify en l'installant dans les étapes de pré-construction. Utilisez nvm pour changer la version du nœud.

preBuild:
  commands:
    - nvm install <node version>

Amplifier la sortie de la console:

frontend:
  phases:
    preBuild:
      commands:
        - nvm install 10


0 commentaires