Especifica as dependências da sua app Node.js declarando-as no ficheiro package.json
.
Por exemplo, se quiser especificar Lodash como uma dependência, o ficheiro package.json
pode ter o seguinte aspeto:
{
"dependencies": {
"lodash": "^4.0.1"
}
}
Durante a implementação, o tempo de execução do Node.js instala automaticamente todos os dependencies
declarados no seu ficheiro package.json
. Por predefinição, é usado o comando npm install
. No entanto, os gestores de pacotes Yarn e Pnpm também são suportados:
Yarn: se existir um ficheiro
yarn.lock
, é usado o comandoyarn install --production
.Pnpm: se existir um ficheiro
pnpm-lock.yaml
, é usado o comandopnpm install
.
Tenha em atenção que tem de garantir que o ficheiro yarn.lock
ou pnpm-lock.yaml
não está especificado na secção skip_files
do ficheiro app.yaml
.
Por predefinição, o App Engine armazena em cache as dependências obtidas para reduzir os tempos de compilação. Para instalar uma versão não colocada em cache da dependência, use o comando:
gcloud app deploy --no-cache
Suporte e limitações para o ficheiro package.json
no ambiente padrão:
Pode usar qualquer pacote Node.js compatível com Linux com o App Engine, incluindo pacotes que requerem extensões nativas (C).
Se o campo
engines
for especificado no seupackage.json
, tem de definir uma versão do Node.js compatível.Todas as dependências que definir no campo
devDependencies
são ignoradas e não são instaladas para a sua app no App Engine.O script
start
deve ser simples e excluir passos de compilação para ter o melhor desempenho, uma vez que o script é executado sempre que é criada uma nova instância da sua aplicação.
Dependências privadas com o Artifact Registry
Se a sua app usar um módulo npm privado,
pode usar um repositório de pacotes Node.js do Artifact Registry
para alojar dependências privadas. Quando implementa a sua app, o processo de compilação
gera automaticamente credenciais do Artifact Registry para a
conta de serviço do Cloud Build
para que não precise de gerar credenciais adicionais.
Para incluir dependências privadas, liste o repositório do Artifact Registry e configure as definições para autenticação com o registo no ficheiro .npmrc
no diretório da app. Por 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
Tenha em atenção que esta abordagem também funciona para o gestor de pacotes Yarn v1.
Se estiver a usar o Yarn v2 ou superior, liste o repositório do Artifact Registry e configure as definições para autenticação com o registo no ficheiro .yarnrc.yml
no diretório da app. Por exemplo:
npmScopes:
SCOPE:
npmRegistryServer: https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
npmAlwaysAuth: true
Posteriormente, inclua os seus pacotes no ficheiro package.json
. Por exemplo:
{
"dependencies": {
" @SCOPE/my-package": "^1.0.0"
}
}
Instalar uma framework Web
Tem de usar uma framework Web para permitir que a sua app publique pedidos Web. Pode usar qualquer framework Web Node.js, incluindo o seguinte:
Para usar uma framework Web específica, como o Express.js, adicione a framework ao ficheiro package.json
:
Por exemplo, o ficheiro package.json
resultante pode ter o seguinte aspeto:
{
"dependencies": {
"lodash": "^4.0.1",
"express": "^4.16.2"
}
}
Instalar as bibliotecas de cliente da Google Cloud
As bibliotecas cliente da nuvem para Node.js são a forma idiomática de os programadores de Node.js se integrarem com Google Cloud serviços, como o Firestore no modo Datastore (Datastore) e o Cloud Storage.
Para instalar a biblioteca cliente do Node.js para o Cloud Storage:
Instale as bibliotecas cliente da nuvem localmente através de um gestor de pacotes:
Para usar o
npm
, execute o seguinte comando:npm install @google-cloud/storage
Para usar o
yarn
, execute o seguinte comando:yarn add @google-cloud/storage
Para usar o
pnpm
, execute o seguinte comando:pnpm add @google-cloud/storage
Configurar autenticação. Pode configurar as bibliotecas cliente da nuvem para Node.js de modo a processarem a autenticação automaticamente.
Use a biblioteca cliente Node.js para o Cloud Storage como referência para implementar suporte para o serviço Cloud Storage na sua app.