Por predefinição, o tempo de execução do node.js executa npm run build
se for detetado um script build
no ficheiro package.json
. Se precisar de controlo adicional sobre os passos de compilação antes de iniciar a aplicação, pode fornecer um passo de compilação personalizado. Pode executar passos de compilação personalizados adicionando gcp-build
ao seu ficheiro
package.json
.
Para impedir que a compilação execute o script npm run build
, tem de:
- Adicione um script
gcp-build
com um valor vazio no seu ficheiropackage.json
:"gcp-build":""
. Para ver detalhes sobre a configuração dopackage.json
, consulte as configurações dos buildpacks do Node.js. Adicione a variável de ambiente
GOOGLE_NODE_RUN_SCRIPTS
com um valor vazio no seu ficheiroapp.yaml
.build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
build_env_variables
no ficheiro app.yaml
.
Quando este script é executado, as dependências nos campos dependencies
e devDependencies
do seu ficheiro package.json
estão disponíveis.
Após a execução do passo de compilação personalizado, o App Engine remove e volta a gerar a pasta node_modules
instalando apenas as dependências de produção declaradas no campo dependencies
do ficheiro package.json
.
Para mais informações sobre como configurar o tempo de execução para passos de compilação personalizados, consulte o artigo Executar passos de compilação personalizados durante a implementação para buildpacks do Node.js.
Exemplo
Pode usar um script de compilação personalizado para tarefas de pré-processamento, como
pré-processar CSS, reduzir o JavaScript do lado do cliente ou executar ferramentas, como
webpack
ou gulp
.
Por exemplo, para compilar TypeScript para JavaScript, o ficheiro package.json
pode ter o seguinte aspeto. Tenha em atenção o script gcp-build
:
Publicar ficheiros estáticos
Quando gera ou copia ficheiros durante o passo de compilação personalizada, o App Engine não disponibiliza estes ficheiros estáticos diretamente a partir da sua app através dos elementos static_dir
ou static_files
definidos no ficheiro app.yaml
. Em alternativa, o App Engine carrega os ficheiros estáticos para a infraestrutura de publicação no ambiente padrão antes de executar o passo de compilação personalizado. Qualquer pedido aos ficheiros gerados ou copiados durante o passo de compilação personalizado resulta num erro HTTP.404 NOT FOUND