Como especificar dependências

Especifique as dependências do aplicativo Node.js declarando-as no arquivo package.json.

Por exemplo, se você quiser especificar Lodash como uma dependência, seu arquivo package.json pode ser semelhante a:

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

Durante a implantação, todas as dependencies declaradas no arquivo package.json são instaladas automaticamente pelo ambiente de execução do Node.js. Por padrão, o comando npm install é usado, mas os gerenciadores de pacotes Yarn e Pnpm também são compatíveis:

  • Yarn: se existir um arquivo yarn.lock, o comando yarn install --production será usado.

  • Pnpm: se um arquivo pnpm-lock.yaml existir, o comando pnpm install será usado.

É preciso garantir que o arquivo yarn.lock ou pnpm-lock.yaml não esteja especificado na seção skip_files do arquivo app.yaml.

Por padrão, o App Engine armazena em cache as dependências buscadas para reduzir o tempo de criação. Para instalar uma versão sem cache da dependência, use o comando:

gcloud app deploy --no-cache

Suporte e limitações para o arquivo package.json no ambiente padrão:

  • É possível usar qualquer pacote Node.js compatível com Linux no App Engine, incluindo pacotes que exigem extensões (C) nativas.

  • Se o campo engines for especificado no package.json, você precisará definir uma versão compatível do Node.js.

  • Todas as dependências que você define no campo devDependencies são ignoradas e não são instaladas para seu aplicativo no App Engine.

  • O script start precisa ser leve e excluir etapas de versão para o melhor desempenho, porque o script é executado sempre que uma nova instância de seu aplicativo é criada.

Dependências particulares com o Artifact Registry

Se o aplicativo usa um módulo npm privado, é possível usar o repositório de pacotes Node.js do Artifact Registry para hospedar dependências privadas. Ao implantar o aplicativo, o processo de compilação gera automaticamente credenciais do Artifact Registry para a conta de serviço do Cloud Build. Assim, você não precisará gerar credenciais adicionais. Para incluir dependências privadas, liste o repositório do Artifact Registry e defina as configurações para autenticar com o registro no seu arquivo .npmrc no diretório do app. Exemplo:

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

Essa abordagem também funciona para o gerenciador de pacotes Yarn v1. Se você estiver usando o Yarn v2 ou uma versão mais recente, liste o repositório do Artifact Registry e defina as configurações de autenticação com o registro no seu arquivo .yarnrc.yml no diretório do app. Exemplo:

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

Depois, inclua seus pacotes no arquivo package.json. Exemplo:

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

Como instalar um framework da Web

Você precisará usar uma biblioteca da Web para permitir que o aplicativo disponibilize solicitações da Web. Você pode usar qualquer biblioteca da Web do Node.js, incluindo estas:

Para usar um framework da Web específico, como o Express.js, adicione o framework ao arquivo package.json:

  • usando npm:

    npm install --save express
  • usando yarn:

    yarn add express
  • Usando o pnpm:

    pnpm add express

Por exemplo, o arquivo package.json resultante pode ser semelhante a:

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

Como instalar as bibliotecas de cliente do Cloud

As bibliotecas de cliente do Cloud para Node.js são a maneira idiomática para os desenvolvedores do Node.js se integrarem aos serviços do Google Cloud, como o Firestore no modo Datastore (Datastore) e o Cloud Storage.

Para instalar a biblioteca de cliente do Node.js para o Cloud Storage:

  1. Instale as bibliotecas de cliente do Cloud localmente usando um gerenciador de pacotes:

    • Para usar npm, execute:

      npm install --save @google-cloud/storage
    • Para usar yarn, execute:

      yarn add @google-cloud/storage
    • Para usar pnpm, execute:

      pnpm add @google-cloud/storage
  2. Configure a autenticação. É possível configurar as bibliotecas de cliente do Cloud para Node.js para processar a autenticação automaticamente.

  3. Use a referência da biblioteca de cliente do Node.js para Cloud Storage a fim de implementar o suporte ao serviço do Cloud Storage no aplicativo.