Specifica delle dipendenze

Puoi specificare le dipendenze per l'app Node.js dichiarandole nel file package.json.

Ad esempio, se vuoi specificare Lodash come dipendenza, il file package.json potrebbe avere il seguente aspetto:

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

Durante il deployment, il runtime Node.js installa automaticamente tutti i dependencies dichiarati nel file package.json. Per impostazione predefinita viene utilizzato il comando npm install, ma sono supportati anche i gestori di pacchetti Yarn e Pnpm:

  • Yarn: se esiste un file yarn.lock, viene utilizzato il comando yarn install --production.

  • Pnpm: se esiste un file pnpm-lock.yaml, viene utilizzato il comando pnpm install.

Tieni presente che devi assicurarti che il file yarn.lock o pnpm-lock.yaml non sia specificato nella sezione skip_files del file app.yaml.

Per impostazione predefinita, App Engine memorizza nella cache le dipendenze recuperate per ridurre i tempi di build. Per installare una versione della dipendenza non memorizzata nella cache, utilizza il comando:

gcloud app deploy --no-cache

Supporto e limitazioni per il file package.json nell'ambiente standard:

  • Con App Engine puoi utilizzare qualsiasi pacchetto Node.js compatibile con Linux, inclusi i pacchetti che richiedono estensioni (C) native.

  • Se il campo engines è specificato in package.json, devi definire una versione Node.js compatibile.

  • Tutte le dipendenze definite nel campo devDependencies vengono ignorate e non vengono installate per la tua app in App Engine.

  • Lo script start deve essere leggero ed escludere i passaggi di build per ottenere le migliori prestazioni perché lo script viene eseguito ogni volta che viene creata una nuova istanza della tua applicazione.

Dipendenze private con Artifact Registry

Se la tua app utilizza un modulo npm privato, puoi utilizzare un repository di pacchetti Node.js di Artifact Registry per ospitare le dipendenze private. Quando esegui il deployment della tua app, il processo di compilazione genera automaticamente le credenziali di Artifact Registry per l'account di servizio Cloud Build, in modo da non dover generare ulteriori credenziali. Per includere le dipendenze private, elenca il repository Artifact Registry e configura le impostazioni per l'autenticazione con il registry nel file .npmrc nella directory dell'app. Ad esempio:

@SCOPE:registry=https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
//REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME:always-auth=true

Tieni presente che questo approccio funziona anche per il gestore di pacchetti Yarn v1. Se utilizzi Yarn v2 o versioni successive, elenca il repository Artifact Registry e configura le impostazioni per l'autenticazione con il registry nel tuo file .yarnrc.yml nella directory dell'app. Ad esempio:

npmScopes:
  SCOPE:
    npmRegistryServer: https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
    npmAlwaysAuth: true

In seguito, includi i tuoi pacchetti nel file package.json. Ad esempio:

{
  "dependencies": {
    " @SCOPE/my-package": "^1.0.0"
  }
}

Installazione di un framework web

Dovrai utilizzare un framework web per consentire alla tua app di gestire le richieste web. Puoi utilizzare qualsiasi framework web Node.js, tra cui:

Per utilizzare un framework web specifico, come Express.js, aggiungi il framework al file package.json:

  • Con npm in uso:

    npm install --save express
  • Usando il filato:

    yarn add express
  • Con pnpm:

    pnpm add express

Ad esempio, il file package.json risultante potrebbe avere il seguente aspetto:

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

Installazione delle librerie client di Cloud

Le librerie client Cloud per Node.js sono il modo idiomatico in cui gli sviluppatori Node.js possono integrarsi con i servizi Google Cloud, come Firestore in modalità Datastore (Datastore) e Cloud Storage.

Per installare la libreria client Node.js per Cloud Storage:

  1. Installa le librerie client di Cloud in locale utilizzando un gestore di pacchetti:

    • Per utilizzare npm, esegui:

      npm install --save @google-cloud/storage
    • Per utilizzare yarn, esegui:

      yarn add @google-cloud/storage
    • Per utilizzare pnpm, esegui:

      pnpm add @google-cloud/storage
  2. Configurare l'autenticazione. Puoi configurare le librerie client di Cloud per Node.js in modo da gestire automaticamente l'autenticazione.

  3. Utilizza il riferimento libreria client Node.js per Cloud Storage per implementare il supporto per il servizio Cloud Storage nella tua app.