Configuração
O Nuxt é configurado com padrões sensatos para torná-lo produtivo.
Por padrão, o Nuxt é configurado para cobrir a maioria dos casos de uso. O arquivo nuxt.config.ts pode substituir ou estender essa configuração padrão.
Configuração do Nuxt
O arquivo nuxt.config.ts está localizado na raiz de um projeto Nuxt e pode substituir ou estender o comportamento da aplicação.
Um arquivo de configuração mínimo exporta a função defineNuxtConfig contendo um objeto com sua configuração. O auxiliar defineNuxtConfig está disponível globalmente sem importação.
export default defineNuxtConfig({
// Minha configuração do Nuxt
})
Este arquivo será frequentemente mencionado na documentação, por exemplo, para adicionar scripts personalizados, registrar módulos ou alterar modos de renderização.
Veja também api > configuration > nuxt-configVocê não precisa usar TypeScript para construir uma aplicação com Nuxt. No entanto, é fortemente recomendado usar a extensão .ts para o arquivo nuxt.config. Desta forma, você pode se beneficiar de dicas no seu IDE para evitar erros de digitação e erros ao editar sua configuração.
Substituições de Ambiente
Você pode configurar substituições totalmente tipadas por ambiente no seu nuxt.config.
export default defineNuxtConfig({
$production: {
routeRules: {
'/**': { isr: true }
}
},
$development: {
//
},
$env: {
staging: {
//
}
},
})
Para selecionar um ambiente ao executar um comando CLI do Nuxt, basta passar o nome para a flag --envName, assim: nuxt build --envName staging.
Para saber mais sobre o mecanismo por trás dessas substituições, consulte a documentação do c12 sobre configuração específica de ambiente.
Se você estiver criando camadas, também pode usar a chave $meta para fornecer metadados que você ou os consumidores de sua camada possam usar.
Variáveis de Ambiente e Tokens Privados
A API runtimeConfig expõe valores como variáveis de ambiente para o restante da sua aplicação. Por padrão, essas chaves estão disponíveis apenas no lado do servidor. As chaves dentro de runtimeConfig.public e runtimeConfig.app (que é usado internamente pelo Nuxt) também estão disponíveis no lado do cliente.
Esses valores devem ser definidos no nuxt.config e podem ser substituídos usando variáveis de ambiente.
export default defineNuxtConfig({
runtimeConfig: {
// As chaves privadas que estão disponíveis apenas no lado do servidor
apiSecret: '123',
// Chaves dentro de public também são expostas no lado do cliente
public: {
apiBase: '/api'
}
}
})
Essas variáveis são expostas ao restante da sua aplicação usando o composable useRuntimeConfig().
const runtimeConfig = useRuntimeConfig()Configuração do App
O arquivo app.config.ts, localizado no diretório de origem (por padrão, a raiz do projeto), é usado para expor variáveis públicas que podem ser determinadas no momento da construção. Ao contrário da opção runtimeConfig, estas não podem ser substituídas usando variáveis de ambiente.
Um arquivo de configuração mínimo exporta a função defineAppConfig contendo um objeto com sua configuração. O auxiliar defineAppConfig está disponível globalmente sem importação.
export default defineAppConfig({
title: 'Hello Nuxt',
theme: {
dark: true,
colors: {
primary: '#ff0000'
}
}
})
Essas variáveis são expostas ao restante da sua aplicação usando o composable useAppConfig.
const appConfig = useAppConfig()runtimeConfig vs. app.config
Como mencionado acima, runtimeConfig e app.config são usados para expor variáveis ao restante da sua aplicação. Para determinar qual deles você deve usar, aqui estão algumas diretrizes:
runtimeConfig: Tokens privados ou públicos que precisam ser especificados após a construção usando variáveis de ambiente.app.config: Tokens públicos que são determinados no momento da construção, configuração do site como variante de tema, título e qualquer configuração de projeto que não seja sensível.
| Recurso | runtimeConfig | app.config |
|---|---|---|
| Lado do Cliente | Hidratado | Empacotado |
| Variáveis de Ambiente | ✅ Sim | ❌ Não |
| Reativo | ✅ Sim | ✅ Sim |
| Suporte a Tipos | ✅ Parcial | ✅ Sim |
| Configuração por Requisição | ❌ Não | ✅ Sim |
| Substituição de Módulo Quente | ❌ Não | ✅ Sim |
| Tipos JS não primitivos | ❌ Não | ✅ Sim |
Arquivos de Configuração Externos
O Nuxt usa o arquivo nuxt.config.ts como a única fonte de verdade para configurações e ignora a leitura de arquivos de configuração externos. Durante o curso de construção do seu projeto, você pode precisar configurá-los. A tabela a seguir destaca configurações comuns e, quando aplicável, como elas podem ser configuradas com o Nuxt.
| Nome | Arquivo de Configuração | Como Configurar |
|---|---|---|
| Nitro | nitro.config.ts | Use a chave nitro em nuxt.config |
| PostCSS | postcss.config.js | Use a chave postcss em nuxt.config |
| Vite | vite.config.ts | Use a chave vite em nuxt.config |
| webpack | webpack.config.ts | Use a chave webpack em nuxt.config |
Aqui está uma lista de outros arquivos de configuração comuns:
| Nome | Arquivo de Configuração | Como Configurar |
|---|---|---|
| TypeScript | tsconfig.json | Mais Informações |
| ESLint | eslint.config.js | Mais Informações |
| Prettier | prettier.config.js | Mais Informações |
| Stylelint | stylelint.config.js | Mais Informações |
| TailwindCSS | tailwind.config.js | Mais Informações |
| Vitest | vitest.config.ts | Mais Informações |
Configuração do Vue
Com Vite
Se você precisar passar opções para @vitejs/plugin-vue ou @vitejs/plugin-vue-jsx, pode fazer isso no seu arquivo nuxt.config.
vite.vuepara@vitejs/plugin-vue. Verifique opções disponíveis.vite.vueJsxpara@vitejs/plugin-vue-jsx. Verifique opções disponíveis.
export default defineNuxtConfig({
vite: {
vue: {
customElement: true
},
vueJsx: {
mergeProps: true
}
}
})
Com webpack
Se você usar webpack e precisar configurar o vue-loader, pode fazer isso usando a chave webpack.loaders.vue dentro do seu arquivo nuxt.config. As opções disponíveis estão definidas aqui.
export default defineNuxtConfig({
webpack: {
loaders: {
vue: {
hotReload: true,
}
}
}
})
Habilitando Recursos Experimentais do Vue
Você pode precisar habilitar recursos experimentais no Vue, como propsDestructure. O Nuxt fornece uma maneira fácil de fazer isso no nuxt.config.ts, independentemente do construtor que você está usando:
export default defineNuxtConfig({
vue: {
propsDestructure: true
}
})
migração experimental reactivityTransform do Vue 3.4 e Nuxt 3.9
Desde o Nuxt 3.9 e Vue 3.4, reactivityTransform foi movido do Vue para o Vue Macros, que tem uma integração com o Nuxt.
※Esta página é uma tradução não oficial da documentação oficial do Nuxt.js.
A página correspondente na documentação oficial está aqui:
https://nuxt.com/docs/3.x/getting-started/configuration