默认情况下,Nuxt的配置涵盖了大多数使用情况。nuxt.config.ts
文件可以覆盖或扩展这个默认配置。
nuxt.config.ts
文件位于Nuxt项目的根部,可以覆盖或扩展应用程序的行为。
一个最小的配置文件导出了 defineNuxtConfig
函数,其中包含一个带有你的配置的对象。defineNuxtConfig
助手函数是全局可用的,无需导入。
export default defineNuxtConfig({ // My Nuxt config})
这个文件经常会在文档中被提及,例如,添加自定义脚本、注册模块或改变渲染模式。
nuxt.config
文件中使用 .ts
扩展。这样你就可以从IDE的提示中获益,避免在编辑配置时出现错别字和错误。runtimeConfig
API将环境变量等值暴露给你的应用程序的其他部分。默认情况下,这些键只在服务器端可用。runtimeConfig.public
中的键也可以在客户端使用。
这些值应该在 nuxt.config
中定义,可以用环境变量来覆盖。
export default defineNuxtConfig({ runtimeConfig: { // The private keys which are only available server-side apiSecret: '123', // Keys within public are also exposed client-side public: { apiBase: '/api' } }})
这些变量通过 useRuntimeConfig
可组合的方式暴露给你的应用程序的其他部分。
<script setup>const runtimeConfig = useRuntimeConfig()</script>
app.config.ts
文件也位于Nuxt项目的根部,用于暴露公共变量,可以在构建时确定。与 runtimeConfig
选项不同的是,这些变量不能用环境变量覆盖。
一个最小的配置文件导出了 defineAppConfig
函数,包含了一个你的配置对象。 defineAppConfig
助手函数是全局可用的,无需导入。
export default defineAppConfig({ title: 'Hello Nuxt', theme: { dark: true, colors: { primary: '#ff0000' } }})
这些变量通过 useAppConfig
可组合的方式暴露给你的应用程序的其他部分。
<script setup>const appConfig = useAppConfig()</script>
runtimeConfig
vs app.config
如上所述,runtimeConfig
和 app.config
都是用来向应用程序的其他部分暴露变量的。为了确定你应该使用一个还是另一个,这里有一些准则:
runtimeConfig
: 需要在构建后使用环境变量指定的私人或公共令牌。app.config
: 在构建时确定的公共令牌,网站配置,如主题变量、标题和任何不敏感的项目配置。Feature | runtimeConfig | app.config |
---|---|---|
Client Side | Hydrated | Bundled |
Environment Variables | ✅ Yes | ❌ No |
Reactive | ✅ Yes | ✅ Yes |
Types support | ✅ Partial | ✅ Yes |
Configuration per Request | ❌ No | ✅ Yes |
Hot Module Replacement | ❌ No | ✅ Yes |
Non primitive JS types | ❌ No | ✅ Yes |