2022-09-13 12:54:31 +00:00
---
2022-10-06 09:15:30 +00:00
navigation.icon: IconFile
2022-09-13 12:54:31 +00:00
title: app.config.ts
head.title: Nuxt App Config
2022-10-06 09:15:30 +00:00
description: Nuxt 3 provides the app.config file to expose reactive configuration within your application.
2022-09-13 12:54:31 +00:00
---
# App Config File
2022-08-17 15:23:13 +00:00
Nuxt 3 provides an `app.config` config file to expose reactive configuration within your application with the ability to update it at runtime within lifecycle or using a nuxt plugin and editing it with HMR (hot-module-replacement).
2022-09-13 12:54:31 +00:00
You can easily provide runtime app configuration using `app.config.ts` file. It can have either of `.ts` , `.js` , or `.mjs` extensions.
```ts [app.config.ts]
export default defineAppConfig({
foo: 'bar'
})
```
2022-08-17 15:23:13 +00:00
::alert{type=warning}
Do not put any secret values inside `app.config` file. It is exposed to the user client bundle.
::
## Defining App Config
To expose config and environment variables to the rest of your app, you will need to define configuration in `app.config` file.
**Example:**
```ts [app.config.ts]
export default defineAppConfig({
theme: {
primaryColor: '#ababab'
}
})
```
2022-11-16 10:04:28 +00:00
When adding `theme` to the `app.config` , Nuxt uses Vite or webpack to bundle the code. We can universally access `theme` in both server and browser using [useAppConfig ](/docs/api/composables/use-app-config ) composable.
2022-08-17 15:23:13 +00:00
```js
const appConfig = useAppConfig()
console.log(appConfig.theme)
```
<!-- TODO: Document module author for extension -->
### Manually Typing App Config
Nuxt tries to automatically generate a typescript interface from provided app config.
It is also possible to type app config manually:
```ts [index.d.ts]
declare module '@nuxt/schema' {
2022-09-06 16:15:27 +00:00
interface AppConfigInput {
2022-08-17 15:23:13 +00:00
/** Theme configuration */
2022-09-06 16:15:27 +00:00
theme?: {
2022-08-17 15:23:13 +00:00
/** Primary app color */
2022-09-06 16:15:27 +00:00
primaryColor?: string
2022-08-17 15:23:13 +00:00
}
}
}
// It is always important to ensure you import/export something when augmenting a type
export {}
```