功能

启用或禁用可选的 Nuxt 功能,解锁更多可能性。

Nuxt 的某些功能是基于选择性启用的,或者可以根据您的需求禁用。

features

devLogs

在开发时将服务器日志流式传输到客户端。这些日志可以在 dev:ssr-logs 钩子中处理。

默认情况下,在开发环境(测试模式未激活时)启用此功能。

如果设置为 silent,日志将不会打印到浏览器控制台。

nuxt.config.ts
export default defineNuxtConfig({
  features: {
    devLogs: true,
  },
})

inlineStyles

渲染 HTML 时内联样式。当前仅在使用 Vite 时可用。

您也可以传入一个函数,该函数接收一个 Vue 组件的路径,并返回一个布尔值,指示是否为该组件内联样式。

默认值为 (id) => id.includes('.vue')

nuxt.config.ts
export default defineNuxtConfig({
  features: {
    inlineStyles: false, // 或一个用于决定内联的函数
  },
})

noScripts

关闭 Nuxt 脚本和 JavaScript 资源提示的渲染。也可以在 routeRules 中进行更细粒度的配置。

您也可以在 routeRules 中更细粒度地禁用脚本。

如果设置为 'production' 或 true,仅在生产模式下禁用 JavaScript。如果设置为 'all',则在开发和生产模式下均禁用 JavaScript。

nuxt.config.ts
export default defineNuxtConfig({
  features: {
    noScripts: true, // 或 'production' | 'all' | false
  },
})

future

还有一个 future 命名空间,用于提前选择将来版本(可能是重大版本)中变成默认的新特性。

compatibilityVersion

启用对 Nuxt 功能或标志的早期访问。

compatibilityVersion 设置为 5 会更改整个 Nuxt 配置的默认设置,切换到 Nuxt v5 行为,包括启用 Vite 环境 API

export default defineNuxtConfig({
  future: {
    compatibilityVersion: 5,
  },
})
了解有关测试 Nuxt 5 的更多信息。

multiApp

启用对实验性多应用支持的早期访问。您可以关注 追踪问题 #21635 了解 Nuxt 多应用支持的进展。

nuxt.config.ts
export default defineNuxtConfig({
  future: {
    multiApp: true,
  },
})

typescriptBundlerResolution

启用 TypeScript 的“Bundler”模块解析模式,这是 Nuxt 和 Vite 等框架推荐的设置。

使用现代带有 exports 的库时,能提升类型支持。

详见 TypeScript 官方 pull request

您也可以设置为 false 使用旧的“Node”模式,这也是 TypeScript 的默认设置。

nuxt.config.ts
export default defineNuxtConfig({
  future: {
    typescriptBundlerResolution: false,
  },
})