返回介绍

配置 Configuration

发布于 2024-04-18 00:42:19 字数 7046 浏览 0 评论 0 收藏 0

Nuxt 配置了合理的默认值。 配置文件可以覆盖或扩展它们。

默认情况下,Nuxt 配置为涵盖大多数用例。 nuxt.config.ts 文件可以覆盖或扩展此默认配置。

Nuxt配置

nuxt.config.ts 文件位于 Nuxt 项目的根目录下,可以覆盖或扩展应用程序的行为。

一个最小的配置文件导出包含一个对象的 defineNuxtConfig 函数和你的配置。 defineNuxtConfig 助手无需导入即可在全局范围内使用。

nuxt.config.ts
export default defineNuxtConfig({
  // My Nuxt config
})

这个文件会经常在文档中提到,例如添加自定义脚本、注册模块或更改渲染模式。

您不必使用 TypeScript 来构建带有 Nuxt 的应用程序。 但是,强烈建议对 nuxt.config 文件使用 .ts 扩展名。 通过这种方式,您可以从 IDE 中的提示中获益,以避免在编辑配置时出现错别字和错误。

相关阅读:配置参考

环境覆盖

位于源目录(默认情况下项目的根目录)中的 app.config.ts 文件用于公开可在构建时确定的公共变量。 与 runtimeConfig 选项相反,这些不能使用环境变量覆盖。

一个最小的配置文件导出包含一个对象的 defineAppConfig 函数和您的配置。 defineAppConfig 助手无需导入即可在全球范围内使用。

app.config.ts
export default defineAppConfig({
  title: 'Hello Nuxt',
  theme: {
    dark: true,
    colors: {
      primary: '#ff0000'
    }
  }
})

这些变量使用 useAppConfig 可组合项暴露给应用程序的其余部分。

pages/index.vue
<script setup>
const appConfig = useAppConfig()
</script>
相关阅读:dirs > app-config

runtimeConfig vs app.config

如上所述,runtimeConfigapp.config 都用于向应用程序的其余部分公开变量。 要确定您是否应该使用其中一种,请遵循以下准则:

  • runtimeConfig:需要在使用环境变量构建后指定的私有或公共令牌。
  • app.config:在构建时确定的公共令牌、网站配置,例如主题变体、标题和任何不敏感的项目配置。
特性runtimeConfigapp.config
客户端:Client SideHydratedBundled
环境变量:Environment Variables✅ 是❌ 否
响应式:Reactive✅ 是✅ 是
类型支持:Types support✅ 部分✅ 是
每个请求的配置:Configuration per Request❌ 否✅ 是
热更新:Hot Module Replacement❌ 否✅ 是
非原始JS类型:Non primitive JS types❌ 否✅ 是

外部配置文件

Nuxt 使用nuxt.config.ts文件作为配置的单一信任来源,并跳过读取外部配置文件。

在构建项目的过程中,您可能需要配置它们。 下表重点介绍了常见的配置,以及在适用的情况下如何使用 Nuxt 配置它们。

名称配置文件如何配置
Nitronitro.config.tsnuxt.config 中使用 nitro
PostCSSpostcss.config.jsnuxt.config 中使用 postcss
Vitevite.config.tsnuxt.config 中使用 vite
webpackwebpack.config.tsnuxt.config 中使用 webpack

以下是其他常见配置文件的列表:

名称配置文件如何配置
TypeScripttsconfig.json配置文档
ESLint.eslintrc.js配置文档
Prettier.prettierrc.json配置文档
Stylelint.stylelintrc.json配置文档
TailwindCSStailwind.config.js配置文档
Vitestvitest.config.ts配置文档

Vue Configuration

With Vite

如果您需要将选项传递给@vitejs/plugin-vue@vitejs/plugin-vue-jsx,您可以在nuxt.config文件中执行此操作。

  • vite.vue代表@vitejs/plugin-vue。 检查可用选项此处
  • vite.vueJsx代表@vitejs/plugin-vue-jsx。 检查可用选项此处
nuxt.config.ts
export default defineNuxtConfig({
  vite: {
    vue: {
      customElement: true
    },
    vueJsx: {
      mergeProps: true
    }
  }
})

With webpack

如果您使用 webpack 并需要配置 vue-loader,您可以使用 nuxt.config 文件中的 webpack.loaders.vue 键来完成此操作。 可用选项在此处定义

nuxt.config.ts
export default defineNuxtConfig({
  webpack: {
    loaders: {
      vue: {
        hotReload: true,
      }
    }
  }
})

启用实验性 Vue 功能

您可能需要在 Vue 中启用实验性功能,例如defineModelpropsDestruct。 Nuxt 在 nuxt.config.ts 中提供了一种简单的方法来做到这一点,无论您使用哪个构建器:

nuxt.config.ts
export default defineNuxtConfig({
  vue: {
    defineModel: true,
    propsDestructure: true
  }
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文