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-buildcom 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_SCRIPTScom 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