Por padrão, o ambiente de execução do node.js executará npm run build se um script build for detectado no arquivo package.json. Se você precisar de mais controle sobre as etapas do build
antes de iniciar o aplicativo, forneça uma etapa personalizada
de build. As etapas personalizadas de build podem ser executadas adicionando gcp-build ao
arquivo package.json.
Para evitar que sua versão execute o script npm run build, siga um destes procedimentos:
- Adicione um script
gcp-buildcom um valor vazio ao arquivopackage.json:"gcp-build":"". Para detalhes sobre como configurar opackage.json, consulte Configurações dos pacotes de criação do Node.js. Adicione a variável de ambiente de build
GOOGLE_NODE_RUN_SCRIPTScom um valor vazio no arquivoapp.yaml.build_env_variables: GOOGLE_NODE_RUN_SCRIPTS: ''
build_env_variables no arquivo app.yaml.
Ao executar este script, as dependências nos campos dependencies e devDependencies do arquivo package.json estarão disponíveis.
Após a execução da etapa de criação personalizada, o App Engine remove e gera novamente a pasta node_modules instalando apenas as dependências de produção declaradas no campo dependencies do arquivo package.json.
Para saber mais sobre como configurar o ambiente de execução para etapas de versão personalizadas, consulte Como executar etapas de versão personalizadas durante a implantação para buildpacks do Node.js.
Exemplo
Um script de criação personalizada pode ser usado para tarefas de pré-processamento, como CSS de pré-processamento, redução de JavaScript do lado do cliente ou ferramentas em execução, como webpack ou gulp.
Por exemplo, para compilar o TypeScript para JavaScript, seu arquivo package.json pode ser semelhante ao seguinte. Observe o script gcp-build:
Como disponibilizar arquivos estáticos
Quando você gera ou copia arquivos durante a etapa de criação personalizada, o App Engine não disponibiliza esses arquivos estáticos diretamente do aplicativo usando static_dir ou static_files definidos no arquivo app.yaml. Em vez disso, o App Engine faz upload dos arquivos estáticos na infraestrutura de serviço no ambiente padrão antes de executar a etapa de versão personalizada. Qualquer solicitação para os arquivos gerados ou copiados durante a etapa de criação personalizada resulta em um erro HTTP 404 NOT FOUND.