Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New translation: gatsby-lifecycle-apis.md #219

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 60 additions & 15 deletions docs/docs/gatsby-lifecycle-apis.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,49 @@
---
title: Gatsby Lifecycle APIs
title: APIs de ciclo de vida do Gatsby
---


import LayerModel from "../../www/src/components/layer-model"
lucas-araujo-dev marked this conversation as resolved.
Show resolved Hide resolved

Gatsby fornece um conjunto rico de APIs de ciclo de vida para se conectar ao bootstrap
e operações de compilação e tempo de execução.

Gatsby provides a rich set of lifecycle APIs to hook into its bootstrap,
lucas-araujo-dev marked this conversation as resolved.
Show resolved Hide resolved
build, and client runtime operations.
lucas-araujo-dev marked this conversation as resolved.
Show resolved Hide resolved

Gatsby's design principles include:

- Conventions > code, but use low-level primitives to build conventions with
code.
- Extracting logic and configuration into [plugins](/docs/plugins/) should be
trivial and encouraged.
- Plugins are easy to open source and reuse. They're just NPM packages.
Os princípios de design do Gatsby incluem:

- Convenções > escrever código, mas use primitivas de baixo nível para criar
convenções com código.
- A extração da lógica e da configuração em [plugins](/docs/plugins/) deve ser
trivial e encorajado.
- Os plugins são facéis de abrir e reutilizar. Eles são apenas pacotes NPM.


# Visão geral de alto nível

## High level Overview
lucas-araujo-dev marked this conversation as resolved.
Show resolved Hide resolved

The following model gives a conceptual overview of how data is sourced and transformed in the process of building a Gatsby site:

O modelo a seguir fornece uma visão geral conceitual de como os dados são originados e transformados no processo de construção de um site Gatsby:

<LayerModel />

## Bootstrap sequence
## Sequência do Bootstrap


Durante o "bootstrap" o Gatsby:

- lê o `gatsby-config.js` para carregar a sua lista de plugins
- inicializa seu cache (armazenado em `/.cache`)
- extrai e pré-processa os dados (origina e transforma os nós) em um esquema GraphQL
- cria páginas na memória
- da sua pasta `/pages`
- do seu `gatsby-config.js` se você implementar `createPages`/`createPagesStatefully` por exemplo.
- de qualquer plugin que implemente `createPages`/`createPagesStatefully`
- extrai, executa e substitui consultas graphql para páginas e `StaticQuery`s
- grava as páginas para armazenar em cache

During the main bootstrap sequence, Gatsby (in this order):
lucas-araujo-dev marked this conversation as resolved.
Show resolved Hide resolved

Expand All @@ -44,18 +68,39 @@ During the main bootstrap sequence, Gatsby (in this order):
- writes page redirects (if any) to `.cache/redirects.json`
- the [onPostBootstrap](/docs/node-apis/#onPostBootstrap) lifecycle is executed
lucas-araujo-dev marked this conversation as resolved.
Show resolved Hide resolved

In development this is a running process powered by [Webpack](https://github.com/gatsbyjs/gatsby/blob/dd91b8dceb3b8a20820b15acae36529799217ae4/packages/gatsby/package.json#L128) and [`react-hot-loader`](https://github.com/gatsbyjs/gatsby/blob/dd91b8dceb3b8a20820b15acae36529799217ae4/packages/gatsby/package.json#L104), so changes to any files get re-run through the sequence again, with [smart cache invalidation](https://github.com/gatsbyjs/gatsby/blob/ffd8b2d691c995c760fe380769852bcdb26a2278/packages/gatsby/src/bootstrap/index.js#L141). For example, `gatsby-source-filesystem` watches files for changes, and each change triggers re-running queries. Other plugins may also perform this service. Queries are also watched, so if you modify a query, your development app is hot reloaded.

The core of the bootstrap process is the "api-runner", which helps to execute APIs in sequence, with state managed in Redux. Gatsby exposes a number of lifecycle APIs which can either be implemented by you (or any of your configured plugins) in `gatsby-node.js`, `gatsby-browser.js` or `gatsby-ssr.js`.
No desenvolvimento, esse é um processo de execução desenvolvido com o [Webpack](https://github.com/gatsbyjs/gatsby/blob/dd91b8dceb3b8a20820b15acae36529799217ae4/packages/gatsby/package.json#L128) e [`react-hot-loader`](https://github.com/gatsbyjs/gatsby/blob/dd91b8dceb3b8a20820b15acae36529799217ae4/packages/gatsby/package.json#L104), para que as alterações em qualquer arquivo sejam reexecutadas pela sequência novamente, com [smart cache invalidation](https://github.com/gatsbyjs/gatsby/blob/ffd8b2d691c995c760fe380769852bcdb26a2278/packages/gatsby/src/bootstrap/index.js#L141). Por exemplo, `gatsby-source-filesystem` observa os arquivos quanto a alterações, e cada alteração aciona consultas reexecutadas. Outros plugins também podem executar esse serviço.
Isso também vale para as consultas, portanto se você modificar uma consulta, seu aplicativo de desenvolvimento é recarregado.

O núcleo do processo de bootstrap é o "api-runner", que ajuda a executar APIs em sequência, com o estado gerenciado no Redux. O Gatsby expõe várias APIs do ciclo de vida que podem ser implementadas por você (ou por qualquer um de seus plugins configurados) em `gatsby-node.js`,` gatsby-browser.js` ou `gatsby-ssr.js`.


A sequência dos ciclos de vida da API do nó bootstrap **main** é:

- [na pré-inicialização](/docs/node-apis/#onPreBootstrap) Ex.: implementado por [`gatsby-plugin-typography`](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-typography/src/gatsby-node.js)
- [Nós de origem](/docs/node-apis/#sourceNodes) Ex.: implementado por [`gatsby-source-wikipedia`](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-wikipedia/src/gatsby-node.js)
- Dentro deste pode ser chamado várias vezes, o que aciona o `createNode` [onCreateNode](/docs/node-apis/#onCreateNode).
- (A primeira compilação de esquema acontece aqui)
- [Extensões resolvíveis](/docs/node-apis/#resolvableExtensions) para extensões de tipo de arquivo / idioma, Ex.: [`gatsby-plugin-typescript`](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-typescript/src/gatsby-node.js)
- [criar páginas](/docs/node-apis/#createPages) Ex.: implementado por [`page-hot-reloader`](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/src/bootstrap/page-hot-reloader.js)
- dentro deste `createPage` pode ser chamado várias vezes, o que aciona [onCreatePage](/docs/node-apis/#onCreatePage)
- [na pré-extração de consultas](/docs/node-apis/#onPreExtractQueries) Ex.: implementado por [`gatsby-transformer-sharp`](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-transformer-sharp/src/gatsby-node.js) e [`gatsby-source-contentful`](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-contentful/src/gatsby-node.js)
- (atualização de esquema acontece aqui)
- **extrair consultas de componentes** onde o [compilador de consultas](https://github.com/gatsbyjs/gatsby/blob/6de0e4408e14e599d4ec73948eb4153dc3cde849/packages/gatsby/src/internal-plugins/query-runner/query-compiler.js#L189) substitui as consultas da página GraphQL e o `StaticQueries`
- As [consultas são executadas](https://github.com/gatsbyjs/gatsby/blob/6de0e4408e14e599d4ec73948eb4153dc3cde849/packages/gatsby/src/internal-plugins/query-runner/page-query-runner.js#L120), e [as páginas são gravadas](https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/src/query/redirects-writer.js)
- [onPostBootstrap](/docs/node-apis/#onPostBootstrap) é chamado (mas não é frequentemente usado)

## Sequência de compilação

## Build sequence
lucas-araujo-dev marked this conversation as resolved.
Show resolved Hide resolved

(to be written)

## Client sequence
(para ser escrito)

## Sequência de cliente

(to be written)
(para ser escrito)

---

Please see the links along the left under "REFERENCE" for the full API documentation.
Consulte os links à esquerda em "REFERENCE" para obter a documentação completa da API.