Configurando Astro
Customize o funcionamento do Astro adicionando um arquivo astro.config.mjs
em seu projeto. Este é um arquivo comum em projetos Astro e todos os templates oficiais o incluem por padrão.
O Arquivo de Configuração Astro
Seção intitulada O Arquivo de Configuração AstroUm arquivo de configuração Astro válido exporta sua configuração com a exportação default
, usando a função auxiliar defineConfig
:
Usar defineConfig()
é recomendado para dicas de tipagem automáticas na sua IDE porém também é opcional. Uma configuração mínima válida se pareceria com algo assim:
Tipos de Arquivo de Configuração Suportados
Seção intitulada Tipos de Arquivo de Configuração SuportadosAstro suporta outros formatos de arquivos para seu arquivo de configuração JavaScript: astro.config.js
, astro.config.mjs
, astro.config.cjs
e astro.config.ts
. Nós recomendamos utilizar .mjs
na maioria dos casos ou .ts
se você quiser escrever TypeScript no seu arquivo de configuração.
O arquivo de configuração TypeScript é gerenciado usando o tsm
e irá respeitar as opções definidas no tsconfig
do seu projeto.
Resolução do Arquivo de Configuração
Seção intitulada Resolução do Arquivo de ConfiguraçãoAstro irá tentar buscar automaticamente um arquivo de configuração com o nome astro.config.mjs
na raiz de seu projeto. Se nenhum arquivo for encontrado, as opções padrão do Astro serão utilizadas.
Você pode passar o arquivo de configuração explicitamente usando a opção --config
da interface de linha de comando. Esta opção sempre busca o arquivo relativo ao diretório no qual você está executando o comando astro
em seu terminal.
IntelliSense da Configuração
Seção intitulada IntelliSense da ConfiguraçãoAstro recomenda o uso da função auxiliar defineConfig()
em seu arquivo de configuração. defineConfig()
proporciona IntelliSense automático em sua IDE. Editores como VSCode são capazes de ler as definições de tipo TypeScript do Astro e providencia dicas de tipagem JSDoc automáticas, mesmo que seu arquivo de configuração não esteja escrito em TypeScript.
Você também pode providenciar manualmente as definições de tipo para o VSCode, usando essa notação JSDoc:
Referenciando Arquivos Relativos
Seção intitulada Referenciando Arquivos RelativosSe você providenciar um caminho relativo à opção root
ou passar a opção --root
da interface de linha de comando, Astro irá resolver os arquivos de acordo com o diretório que o comando astro
estiver executando.
Astro irá resolver todos os outros arquivos e diretórios relativos à raiz do projeto definida:
Para referenciar um arquivo ou diretório relativo ao arquivo de configuração, use import.meta.url
(a menos que você esteja em um arquivo common.js astro.config.cjs
):
Propriedades específicas do Vite de import.meta
, como import.meta.env
ou import.meta.glob
, não são acessíveis em seu arquivo de configuração. Nós recomendamos alternativas como dotenv ou fast-glob para esses respectivos casos de uso. Adicionalmente, nomes de caminho alternativos do tsconfig não serão resolvidos. Use caminhos relativos nestes arquivos para importar módulos.
Customizando Nomes de Arquivos Finais
Seção intitulada Customizando Nomes de Arquivos FinaisPara código que o Astro processa, como arquivos JavaScript e CSS importados, você pode customizar os nomes de arquivos finais utilizando entryFileNames
, chunkFileNames
, e assetFileNames
na entrada vite.build.rollupOptions
no seu arquivo astro.config.*
.
Isto pode ser útil caso você tenha scripts com nomes que podem ser afetados por bloqueadores de anúncios (ex. ads.js
ou google-tag-manager.js
).
Variáveis de Ambiente
Seção intitulada Variáveis de AmbienteAstro verifica arquivos de configuração antes de carregar seus outros arquivos. Portanto, você não pode utilizar import.meta.env
para acessar variáveis de ambiente que foram definidas em arquivos .env
.
Você pode utilizar process.env
em um arquivo de configuração para acessar outras variáveis de ambiente, como aquelas definidas pela CLI.
Você também pode utilizar o utilitário loadEnv
do Vite para manualmente carregar arquivos .env
.
O pnpm
não permite você importar módulos que não estão diretamente instalados no seu projeto. Se você está usando pnpm
, você terá que instalar vite
para usar o utilitário loadEnv
.