Node.js 14 est désormais disponible pour l'ensemble des utilisateurs.

Spécifier des dépendances

Vous spécifiez les dépendances pour votre application Node.js en les déclarant dans le fichier package.json.

Par exemple, si vous souhaitez utiliser Lodash, votre fichier package.json peut ressembler à ceci :

{
  "dependencies": {
    "lodash": "^4.0.1"
  }
}

Lorsque vous déployez votre application, l'environnement d'exécution Node.js installe automatiquement toutes les dependencies en utilisant la commande npm install ou, si un fichier yarn.lock existe, la commande yarn install.

Par défaut, App Engine met en cache les dépendances obtenues afin de réduire la durée de compilation. Pour installer une version non mise en cache de la dépendance, exécutez la commande suivante :

gcloud beta app deploy --no-cache

Compatibilité et limitations du fichier package.json dans l'environnement standard :

  • Vous pouvez utiliser n'importe quel package Node.js compatible avec Linux dans App Engine, y compris les packages qui requièrent des extensions (C) natives.

  • Si le champ engines est spécifié dans votre package.json, vous devez définir une version Node.js compatible.

  • Toutes les dépendances que vous définissez dans le champ devDependencies sont ignorées et ne sont pas installées pour votre application dans App Engine.

  • Le script start doit être léger et exclure les étapes de compilation pour optimiser les performances, car il s'exécute chaque fois qu'une nouvelle instance de votre application est créée.

Installer un framework Web

Nous vous recommandons d'utiliser un framework Web pour permettre à votre application de répondre aux requêtes Web. Vous pouvez utiliser n'importe quel framework Web Node.js, voici quelques exemples :

Si vous souhaitez par exemple installer et utiliser Express.js, vous pouvez exécuter l'une des commandes suivantes :

  • Avec npm :

    npm install express
  • Avec yarn :

    yarn add express

Par exemple, le fichier package.json obtenu peut se présenter comme suit :

{
  "dependencies": {
    "lodash": "^4.0.1",
    "express": "^4.16.2"
  }
}