您可以通过定义额外的别名来访问 JavaScript 和 CSS 中的自定义目录,从而提高 DX(开发者体验)。
object{
"~": "/<rootDir>/app",
"@": "/<rootDir>/app",
"~~": "/<rootDir>",
"@@": "/<rootDir>",
"#shared": "/<rootDir>/shared",
"#server": "/<rootDir>/server",
"assets": "/<rootDir>/app/assets",
"public": "/<rootDir>/public",
"#build": "/<rootDir>/.nuxt",
"#internal/nuxt/paths": "/<rootDir>/.nuxt/paths.mjs"
}
~ 来访问您的别名。.nuxt/tsconfig.app.json, .nuxt/tsconfig.server.json, 等),以便您可以获得完整的类型支持和路径自动完成。如果您需要进一步扩展生成配置提供的选项,请确保在此处或 nuxt.config 中的 typescript.tsConfig 属性中添加它们。示例:
import { fileURLToPath } from 'node:url'
export default defineNuxtConfig({
alias: {
'images': fileURLToPath(new URL('./assets/images', import.meta.url)),
'style': fileURLToPath(new URL('./assets/style', import.meta.url)),
'data': fileURLToPath(new URL('./assets/other/data', import.meta.url)),
},
})
<template>
<img src="~images/main-bg.jpg">
</template>
<script>
import data from 'data/test.json'
</script>
<style>
// Uncomment the below
//@import '~style/variables.scss';
//@import '~style/utils.scss';
//@import '~style/base.scss';
body {
background-image: url('~images/main-bg.jpg');
}
</style>
运行 nuxt analyze 时,Nuxt 将存储生成文件的目录。
如果指定了相对路径,它将相对于您的 rootDir。
string"/<rootDir>/.nuxt/analyze"Nuxt 应用配置。
baseURL您的 Nuxt 应用的基础路径。
例如
string"/"示例:
export default defineNuxtConfig({
app: {
baseURL: '/prefix/',
},
})
这也可以通过设置 NUXT_APP_BASE_URL 环境变量在运行时设置。
示例:
NUXT_APP_BASE_URL=/prefix/ node .output/server/index.mjs
buildAssetsDir构建站点资产的文件夹名称,相对于 baseURL(如果设置了,则相对于 cdnURL)。这在构建时设置,不应在运行时自定义。
string"/_nuxt/"cdnURL用于提供公共文件夹的绝对 URL(仅限生产环境)。
例如
string""示例:
export default defineNuxtConfig({
app: {
cdnURL: 'https://mycdn.org/',
},
})
这可以通过设置 NUXT_APP_CDN_URL 环境变量在运行时设置为不同的值。
示例:
NUXT_APP_CDN_URL=https://mycdn.org/ node .output/server/index.mjs
head为每个页面设置 <head> 的默认配置。
object{
"meta": [
{
"name": "viewport",
"content": "width=device-width, initial-scale=1"
},
{
"charset": "utf-8"
}
],
"link": [],
"style": [],
"script": [],
"noscript": []
}
示例:
export default defineNuxtConfig({
app: {
head: {
meta: [
// <meta name="viewport" content="width=device-width, initial-scale=1">
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
],
script: [
// <script src="https://myawesome-lib.js"></script>
{ src: 'https://awesome-lib.js' },
],
link: [
// <link rel="stylesheet" href="https://myawesome-lib.css">
{ rel: 'stylesheet', href: 'https://awesome-lib.css' },
],
// please note that this is an area that is likely to change
style: [
// <style>:root { color: red }</style>
{ textContent: ':root { color: red }' },
],
noscript: [
// <noscript>JavaScript is required</noscript>
{ textContent: 'JavaScript is required' },
],
},
},
})
keepalive页面间 KeepAlive 配置的默认值。
这可以使用单个页面上的 definePageMeta 覆盖。只允许 JSON 可序列化的值。
booleanfalse请参阅: Vue KeepAlive
layoutTransition布局过渡的默认值。
这可以使用单个页面上的 definePageMeta 覆盖。只允许 JSON 可序列化的值。
boolean | TransitionPropsfalse请参阅: Vue 过渡文档
pageTransition页面过渡的默认值。
这可以使用单个页面上的 definePageMeta 覆盖。只允许 JSON 可序列化的值。
boolean | TransitionPropsfalse请参阅: Vue 过渡文档
rootAttrs自定义 Nuxt 根元素的 ID。
object{
"id": "__nuxt"
}
rootId自定义 Nuxt 根元素的 ID。
string"__nuxt"rootTag自定义 Nuxt 根元素的标签。
string"div"spaLoaderAttrs自定义 Nuxt SPA 加载模板元素的属性。
object{
"id": "__nuxt-loader"
}
IDstring"__nuxt-loader"spaLoaderTag自定义 Nuxt SpaLoader 元素的标签。
string"div"teleportAttrs自定义 Nuxt Teleport 元素的属性。
object{
"id": "teleports"
}
teleportId自定义 Nuxt Teleport 元素的 ID。
string"teleports"teleportTag自定义 Nuxt Teleport 元素的标签。
string"div"viewTransition视图过渡的默认值。
只有当在您的 nuxt.config 文件中启用对视图过渡的实验性支持时,这才会生效。这可以使用单个页面上的 definePageMeta 覆盖。
booleanfalse请参阅: Nuxt 视图过渡 API 文档
附加的应用配置
对于程序化使用和类型支持,您可以通过此选项直接提供应用配置。它将与 app.config 文件作为默认值合并。
nuxt对于多应用项目,Nuxt 应用的唯一 ID。
默认为 nuxt-app。
string"nuxt-app"共享的构建配置。
analyzeNuxt 允许可视化您的包以及如何优化它们。
设置为 true 以启用包分析,或传递一个带有选项的对象用于 webpack或用于 vite.
object{
"template": "treemap",
"projectRoot": "/<rootDir>",
"filename": "/<rootDir>/.nuxt/analyze/{name}.html"
}
示例:
export default defineNuxtConfig({
analyze: {
analyzerMode: 'static',
},
})
templates建议使用来自 @nuxt/kit 的 addTemplate,而不是此选项。
array示例:
export default defineNuxtConfig({
build: {
templates: [
{
src: '~/modules/support/plugin.js', // `src` can be absolute or relative
dst: 'support.js', // `dst` is relative to project `.nuxt` dir
},
],
},
})
transpile如果您想使用 Babel 对特定依赖项进行转译,可以将其添加到此处。transpile 中的每个项可以是包名称、函数、字符串或与依赖项文件名匹配的正则表达式对象。
您也可以使用一个函数来有条件地进行转译。该函数将接收一个对象({ isDev, isServer, isClient, isModern, isLegacy })。
array示例:
export default defineNuxtConfig({
build: {
transpile: [({ isLegacy }) => isLegacy && 'ky'],
},
})
定义放置您的已构建 Nuxt 文件的目录。
许多工具假定 .nuxt 是一个隐藏目录(因为它以 . 开头)。如果这是一个问题,您可以使用此选项来防止这种情况。
string"/<rootDir>/.nuxt"示例:
export default defineNuxtConfig({
buildDir: 'nuxt-build',
})
与构建匹配的唯一标识符。这可能包含项目当前状态的哈希值。
string"4a2e2d30-418f-41df-8e58-ed5df06de7fd"用于打包应用程序 Vue 部分的构建器。
Nuxt 支持多个构建器用于客户端应用程序。默认情况下,使用 Vite,但您可以切换到 webpack、Rspack,甚至提供自定义构建器实现。
'vite' | 'webpack' | 'rspack' | string | { bundle: (nuxt: Nuxt) => Promise<void> }"@nuxt/vite-builder"使用受支持的构建器
export default defineNuxtConfig({
// default - uses @nuxt/vite-builder
// builder: 'vite',
// uses @nuxt/webpack-builder
// builder: 'webpack',
// uses @nuxt/rspack-builder
builder: 'rspack',
})
如果您使用的是 webpack 或 rspack,您需要确保 @nuxt/webpack-builder 或 @nuxt/rspack-builder 已在您的项目中明确安装。
使用自定义构建器对象
您可以通过传递一个带有 bundle 函数的对象来提供自定义构建器
export default defineNuxtConfig({
builder: {
async bundle (nuxt) {
const entry = await resolvePath(resolve(nuxt.options.appDir, 'entry'))
// Build client and server bundles
await buildClient(nuxt, entry)
if (nuxt.options.ssr) {
await buildServer(nuxt, entry)
}
// ... it's a bit more complicated than that, of course!
},
},
})
创建自定义构建器包
要创建作为独立包的自定义构建器,它应该导出一个 bundle 函数。然后,您可以在 nuxt.config.ts 中指定包名称
export default defineNuxtConfig({
builder: 'my-custom-builder',
})
为您的应用指定兼容性日期。
这用于控制 Nitro、Nuxt Image 和其他可能在没有大版本更新的情况下改变行为的模块中的预设行为。我们计划在未来改进围绕此功能的工具。
配置 Nuxt 组件自动注册。
配置的目录中的任何组件都可以在您的页面、布局(和其他组件)中使用,而无需显式导入它们。
object{
"dirs": [
{
"path": "~/components/global",
"global": true
},
"~/components"
]
}
请参阅: app/components/ 目录文档
您可以定义要全局设置的 CSS 文件/模块/库(包含在每个页面中)。
Nuxt 将自动通过扩展名猜测文件类型并使用适当的预处理器。如果需要使用它们,您仍然需要安装所需的加载器。
array示例:
export default defineNuxtConfig({
css: [
// Load a Node.js module directly (here it's a Sass file).
'bulma',
// CSS file in the project
'~/assets/css/main.css',
// SCSS file in the project
'~/assets/css/main.scss',
],
})
设置为 true 以启用调试模式。
目前,它会在服务器上打印钩子名称和计时,并在浏览器中记录钩子参数。您也可以将其设置为一个对象以启用特定的调试选项。
booleanfalseNuxt 是否在开发模式下运行。
通常情况下,您不需要设置此项。
booleanfalsecors为开发服务器设置 CORS 选项
originarray[
{}
]
host开发服务器监听主机
https是否启用 HTTPS。
booleanfalse示例:
export default defineNuxtConfig({
devServer: {
https: {
key: './server.key',
cert: './server.crt',
},
},
})
loadingTemplate显示加载屏幕的模板
functionport开发服务器监听端口
number3000url监听的开发服务器 URL。
不应直接设置此项,因为它将始终被开发服务器替换为完整的 URL(用于模块和内部使用)。
string"https://:3000"仅限 Nitro 开发环境的服务器处理程序。
array请参阅: Nitro 服务器路由文档
为开发启用 Nuxt DevTools。
devtools 的破坏性变更可能不会反映在 Nuxt 的版本上。
请参阅: Nuxt DevTools获取更多信息。
自定义 Nuxt 使用的默认目录结构。
除非需要,否则最好坚持使用默认设置。
appstring"app"assets资产目录(在您的构建中别名为 ~assets)。
string"app/assets"layouts布局目录,其中的每个文件都将自动注册为 Nuxt 布局。
string"app/layouts"middleware中间件目录,其中的每个文件都将自动注册为 Nuxt 中间件。
string"app/middleware"modules模块目录,其中的每个文件都将自动注册为 Nuxt 模块。
string"modules"pages将处理以自动生成应用程序页面路由的目录。
string"app/pages"plugins插件目录,其中的每个文件都将自动注册为 Nuxt 插件。
string"app/plugins"public包含静态文件的目录,这些文件将通过 Nuxt 服务器直接访问,并在生成应用程序时复制到您的 dist 文件夹中。
string"public"shared共享目录。此目录在应用程序和服务器之间共享。
string"shared"options配置 Nuxt 和传递给其他构建器(如 Vite 或 webpack)的共享 esbuild 选项。
jsxFactorystring"h"jsxFragmentstring"Fragment"targetstring"esnext"tsconfigRawobject从多个本地或远程来源扩展项目。
值应为字符串或字符串数组,指向相对于当前配置的源目录或配置路径。您可以使用 github:, gh: gitlab: 或 bitbucket:
请参阅: c12 关于扩展配置层级的文档
请参阅: giget 文档
Nuxt 解析器应解析的扩展名。
array[
".js",
".jsx",
".mjs",
".ts",
".tsx",
".vue"
]
钩子是 Nuxt 事件的监听器,通常在模块中使用,但也可在 nuxt.config 中使用。
在内部,钩子遵循使用冒号的命名模式(例如 build:done)。为方便配置,您也可以在 nuxt.config 中将它们组织为分层对象(如下所示)。
示例:
import fs from 'node:fs'
import path from 'node:path'
export default defineNuxtConfig({
hooks: {
build: {
done (builder) {
const extraFilePath = path.join(
builder.nuxt.options.buildDir,
'extra-file',
)
fs.writeFileSync(extraFilePath, 'Something extra')
},
},
},
})
比 ignorePrefix 更具可定制性:ignore 数组中指定的 glob 模式匹配的所有文件将在构建时被忽略。
array[
"**/*.stories.{js,cts,mts,ts,jsx,tsx}",
"**/*.{spec,test}.{js,cts,mts,ts,jsx,tsx}",
"**/*.d.{cts,mts,ts}",
"**/*.d.vue.{cts,mts,ts}",
"**/.{pnpm-store,vercel,netlify,output,git,cache,data}",
"**/*.sock",
".nuxt/analyze",
".nuxt",
"**/-*.*"
]
将选项直接传递给 node-ignore(Nuxt 用它来忽略文件)。
请参阅: node-ignore
示例:
export default defineNuxtConfig({
ignoreOptions: {
ignorecase: false,
},
})
在 app/pages/、app/layouts/、app/middleware/ 和 public/ 目录中任何文件名以 ignorePrefix 指定的前缀开头的文件将在构建过程中被忽略。这旨在防止某些文件被处理或在构建的应用中提供服务。默认情况下,ignorePrefix 设置为 '-',忽略任何以 '-' 开头的文件。
string"-"配置 Nuxt 如何自动导入 composables 到您的应用程序中。
请参阅: Nuxt 文档
dirs一个要自动导入的自定义目录数组。请注意,此选项不会覆盖默认目录(~/composables, ~/utils)。
array示例:
export default defineNuxtConfig({
imports: {
// Auto-import pinia stores defined in `~/stores`
dirs: ['stores'],
},
})
globalbooleanfalsescan是否扫描您的 app/composables/ 和 app/utils/ 目录以自动导入 composables。Nuxt 或其他模块(如来自 vue 或 nuxt 的导入)注册的自动导入仍将启用。
booleantrue构建日志时的日志级别。
在 CI 中运行或没有 TTY 可用时,默认为 'silent'。然后此选项在 Vite 中用作 'silent',在 webpack 中用作 'none'
string"info"模块是 Nuxt 扩展,可以扩展其核心功能并添加无尽的集成。
每个模块要么是一个字符串(可以指向包或文件路径),要么是一个元组,其中第一个是模块的字符串,第二个是选项对象,要么是一个内联模块函数。Nuxt 尝试使用 node require 路径(在 node_modules 中)解析 modules 数组中的每个项,然后将从项目 srcDir 解析,如果使用了 ~ 别名。
arraynuxt.config.ts 中定义的模块。然后,按字母顺序执行在 modules/ 目录中找到的模块。示例:
export default defineNuxtConfig({
modules: [
// Using package name
'@nuxt/scripts',
// Relative to your project srcDir
'~/custom-modules/awesome.js',
// Providing options
['@nuxtjs/google-analytics', { ua: 'X1234567' }],
// Inline definition
function () {},
],
})
用于设置模块目录以进行路径解析(例如 webpack 的 resolveLoading、nodeExternals 和 postcss)。
配置路径相对于 options.rootDir(默认为当前工作目录)。如果您的项目组织为 yarn workspace 风格的单体仓库,则可能需要设置此字段。
array[
"/<rootDir>/node_modules"
]
示例:
export default defineNuxtConfig({
modulesDir: ['../../node_modules'],
})
Nitro 的配置。
请参阅: Nitro 配置文档
routeRulesobjectruntimeConfigobject{
"public": {},
"app": {
"buildId": "4a2e2d30-418f-41df-8e58-ed5df06de7fd",
"baseURL": "/",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
},
"nitro": {
"envPrefix": "NUXT_"
}
}
构建时间优化配置。
asyncTransforms直接传递给来自 unctx 的转换器的选项,该转换器在 await 之后保留异步上下文。
asyncFunctionsarray[
"defineNuxtPlugin",
"defineNuxtRouteMiddleware"
]
objectDefinitionsdefineNuxtComponentarray[
"asyncData",
"setup"
]
defineNuxtPluginarray[
"setup"
]
definePageMetaarray[
"middleware",
"validate"
]
keyedComposables用于注入键的函数。
只要传递给函数的参数数量少于 argumentLength,就会注入一个额外的魔术字符串,可用于在服务器和客户端之间去重请求。您需要采取措施处理此附加键。该键将根据调用函数的具体位置在文件中保持唯一。
array[
{
"name": "callOnce",
"argumentLength": 3
},
{
"name": "defineNuxtComponent",
"argumentLength": 2
},
{
"name": "useState",
"argumentLength": 2
},
{
"name": "useFetch",
"argumentLength": 3
},
{
"name": "useAsyncData",
"argumentLength": 3
},
{
"name": "useLazyAsyncData",
"argumentLength": 3
},
{
"name": "useLazyFetch",
"argumentLength": 3
}
]
treeShake从特定构建中摇树(Tree shake)代码。
composables从服务器或客户端构建中摇树 composables。
示例:
export default defineNuxtConfig({
optimization: {
treeShake: {
composables: {
client: { vue: ['onMounted'] },
server: { vue: ['onServerPrefetch'] },
},
},
},
})
clientobject{
"vue": [
"onRenderTracked",
"onRenderTriggered",
"onServerPrefetch"
],
"#app": [
"definePayloadReducer",
"definePageMeta",
"onPrehydrate"
]
}
服务器object{
"vue": [
"onMounted",
"onUpdated",
"onUnmounted",
"onBeforeMount",
"onBeforeUpdate",
"onBeforeUnmount",
"onRenderTracked",
"onRenderTriggered",
"onActivated",
"onDeactivated"
],
"#app": [
"definePayloadReviver",
"definePageMeta"
]
}
是否在 SPA 模式下使用 vue-router 集成。如果您未提供值,则如果您的源文件夹中有 app/pages/ 目录,它将被启用。
此外,您可以提供一个 glob 模式或模式数组来仅扫描某些文件作为页面。
示例:
export default defineNuxtConfig({
pages: {
pattern: ['**/*/*.vue', '!**/*.spec.*'],
},
})
一个 Nuxt 应用插件数组。
每个插件可以是一个字符串(可以是文件的绝对或相对路径)。如果它以 .client 或 .server 结尾,那么它将只在适当的上下文中自动加载。它也可以是一个带有 src 和 mode 键的对象。
array~/plugins 目录自动注册,并且这些插件不需要在 nuxt.config 中列出,除非您需要自定义它们的顺序。所有插件都按其 src 路径去重。请参阅: app/plugins/ 目录文档
示例:
export default defineNuxtConfig({
plugins: [
'~/custom-plugins/foo.client.js', // only in client side
'~/custom-plugins/bar.server.js', // only in server side
'~/custom-plugins/baz.js', // both client & server
{ src: '~/custom-plugins/both-sides.js' },
{ src: '~/custom-plugins/client-only.js', mode: 'client' }, // only on client side
{ src: '~/custom-plugins/server-only.js', mode: 'server' }, // only on server side
],
})
orderPostCSS 插件的排序策略。
functionplugins配置 PostCSS 插件的选项。
请参阅: PostCSS 文档
autoprefixer解析 CSS 并向 CSS 规则添加供应商前缀的插件。
请参阅: autoprefixer
cssnanoobject请参阅: cssnano 配置选项
定义应用程序的根目录。
可以覆盖此属性(例如,运行 nuxt ./my-app/ 会将 rootDir 设置为相对于当前/工作目录的 ./my-app/ 的绝对路径。通常不需要配置此选项。
string"/<rootDir>"应用于匹配服务器路由的全局路由选项。
实验性:这是一个实验性功能,API 将在未来发生变化。
请参阅: Nitro 路由规则文档
options传递给 vue-router 的附加路由器选项。除了 vue-router 的选项外,Nuxt 还提供额外的选项来定制路由器(见下文)。
router.options.ts 文件。请参阅: Vue Router 文档
hashMode您可以在 SPA 模式下启用哈希历史。在此模式下,路由器使用一个哈希字符(#)在实际 URL 之前,该 URL 在内部传递。启用后,URL 永远不会发送到服务器 且 不支持 SSR。
booleanfalse默认: false
scrollBehaviorType自定义哈希链接的滚动行为。
string"auto"默认: 'auto'
运行时配置允许将动态配置和环境变量传递给 Nuxt 应用上下文。
此对象的 C 盘内容只能通过 useRuntimeConfig 从服务器访问。它主要用于存放不暴露给前端的私有配置。这可能包括你的 API 密钥令牌。 public 和 app 下的任何内容都将暴露给前端。在运行时,值会自动被匹配的环境变量替换,例如,设置环境变量 NUXT_API_KEY=my-api-key NUXT_PUBLIC_BASE_URL=/foo/ 将覆盖下面示例中的两个值。
object{
"public": {},
"app": {
"buildId": "4a2e2d30-418f-41df-8e58-ed5df06de7fd",
"baseURL": "/",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
}
}
示例:
export default defineNuxtConfig({
runtimeConfig: {
apiKey: '', // Default to an empty string, automatically set at runtime using process.env.NUXT_API_KEY
public: {
baseURL: '', // Exposed to the frontend as well.
},
},
})
Nuxt 服务器构建器的配置。
builder指定用于打包应用程序服务器部分的服务器构建器。
默认情况下,Nuxt 使用 @nuxt/nitro-server,它提供了独立的 Nitro 集成。这种架构允许不同的 Nitro 集成模式,例如将 Nitro 用作 Vite 插件(使用 Vite 环境 API)。
string | { bundle: (nuxt: Nuxt) => Promise<void> }"@nuxt/nitro-server"定义 Nuxt 应用程序的服务器目录,其中包含 Nitro 路由、中间件和插件。
如果指定了相对路径,它将相对于您的 rootDir。
string"/<srcDir>/server"Nitro 服务器处理程序。
每个处理程序接受以下选项
array请参阅: server/ 目录文档
server/api、server/middleware 和 server/routes 中的文件。示例:
export default defineNuxtConfig({
serverHandlers: [
{ route: '/path/foo/**:name', handler: '~/server/foohandler.ts' },
],
})
配置服务器和/或客户端包的 sourcemap 的生成方式和是否生成。
如果设置为单个布尔值,该值将应用于服务器和客户端。此外,服务器和客户端都可以使用 'hidden' 选项。服务器和客户端都可用的选项:- true: 生成 sourcemap 并将源引用包含在最终包中。- false: 不生成任何 sourcemap。- 'hidden': 生成 sourcemap 但不在最终包中包含引用。
object{
"server": true,
"client": false
}
布尔值或 HTML 文件路径,其内容将插入到使用 ssr: false 渲染的任何 HTML 页面中。
~/spa-loading-template.html 文件(如果存在)。- 如果为 false,则不会加载 SPA 加载指示器。- 如果为 true,Nuxt 将在你的层中查找 ~/spa-loading-template.html 文件,或者使用默认的 Nuxt 图片。一些好的加载器来源是SpinKit或SVG Spinners.null示例: ~/spa-loading-template.html
<!-- https://github.com/barelyhuman/snips/blob/dev/pages/css-loader.md -->
<div class="loader"></div>
<style>
.loader {
display: block;
position: fixed;
z-index: 1031;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 18px;
height: 18px;
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: #000;
border-left-color: #000;
border-bottom-color: #efefef;
border-right-color: #efefef;
border-radius: 50%;
-webkit-animation: loader 400ms linear infinite;
animation: loader 400ms linear infinite;
}
@-webkit-keyframes loader {
0% {
-webkit-transform: translate(-50%, -50%) rotate(0deg);
}
100% {
-webkit-transform: translate(-50%, -50%) rotate(360deg);
}
}
@keyframes loader {
0% {
transform: translate(-50%, -50%) rotate(0deg);
}
100% {
transform: translate(-50%, -50%) rotate(360deg);
}
}
</style>
定义 Nuxt 应用程序的源目录。
如果指定了相对路径,它将相对于 rootDir。
string"app" (Nuxt 4), "." (Nuxt 3 with compatibilityMode: 3)示例:
export default defineNuxtConfig({
srcDir: 'app/',
})
这需要以下文件夹结构
-| app/
---| assets/
---| components/
---| layouts/
---| middleware/
---| pages/
---| plugins/
---| app.config.ts
---| app.vue
---| error.vue
-| server/
-| public/
-| modules/
-| nuxt.config.js
-| package.json
是否启用 HTML 渲染 - 动态渲染(服务器模式)或在生成时渲染。如果设置为 false,生成的页面将没有内容。
booleantrue手动禁用 nuxt telemetry。
请参阅: Nuxt Telemetry获取更多信息。
你的应用程序是否正在进行单元测试。
booleanfalse从本地或远程源扩展项目。
值应为指向源目录或相对于当前配置的路径。你可以使用 github:、gitlab:、bitbucket: 或 https:// 从远程 git 仓库扩展。
stringNuxt 的 TypeScript 集成配置。
builder你的项目要包含哪些构建器类型。
默认情况下,Nuxt 根据你的 builder 选项推断此项(默认为 'vite'),但你可以通过将其设置为 false 来完全自行处理构建器环境类型,或者选择 'shared' 选项。对于希望支持多种可能构建器的模块作者来说,建议使用 'shared' 选项。
nullhoist在 compilerOptions.paths 中生成深度别名的模块。此选项尚不支持子路径。当在 pnpm monorepo 中使用 Nuxt 并设置 shamefully-hoist=false 时,这可能是必需的。
array[
"nitropack/types",
"nitropack/runtime",
"nitropack",
"defu",
"h3",
"consola",
"ofetch",
"@unhead/vue",
"@nuxt/devtools",
"vue",
"@vue/runtime-core",
"@vue/compiler-sfc",
"vue-router",
"vue-router/auto-routes",
"unplugin-vue-router/client",
"@nuxt/schema",
"nuxt"
]
includeWorkspace包含 Nuxt 项目的父工作区。主要用于主题和模块作者。
booleanfalseshim生成一个 *.vue shim。
我们建议让官方 Vue 扩展生成准确的组件类型。请注意,如果你正在使用其他无法理解 .vue 文件类型的库(如 ESLint)时,你可能希望将其设置为 true。
booleanfalsestrictTypeScript 附带了某些检查,可以让你更安全地分析你的程序。一旦将代码库转换为 TypeScript,你就可以开始启用这些检查以获得更高的安全性。Read More
booleantrueTsConfig你可以使用此选项扩展生成的 TypeScript 配置(.nuxt/tsconfig.app.json、.nuxt/tsconfig.server.json 等)。
typeCheck启用构建时类型检查。
如果设置为 true,将在开发环境中进行类型检查。你可以通过将其设置为 build 来将其限制为仅在构建时进行类型检查。需要将 typescript 和 vue-tsc 作为开发依赖安装。
booleanfalse请参阅: Nuxt TypeScript 文档
一个对象,允许我们配置 unhead nuxt 模块。
legacy为 unhead 模块启用旧版兼容模式。这会应用以下更改:- 禁用 Capo.js 排序- 添加 DeprecationsPlugin:支持 hid、vmid、children、body- 添加 PromisesPlugin:支持 Promise 作为输入
booleanfalse请参阅: unhead 迁移文档
示例:
export default defineNuxtConfig({
unhead: {
legacy: true,
},
})
renderSSRHeadOptions将传递给 renderSSRHead 以自定义输出的对象。
object{
"omitLineBreaks": false
}
示例:
export default defineNuxtConfig({
unhead: {
renderSSRHeadOptions: {
omitLineBreaks: true,
},
},
})
将直接传递给 Vite 的配置。
请参阅: Vite 配置文档以获取更多信息。请注意,并非所有 Vite 选项都在 Nuxt 中受支持。
buildassetsDirstring"_nuxt/"emptyOutDirbooleanfalsecacheDirstring"/<rootDir>/node_modules/.cache/vite"clearScreenbooleantruedefineobject{
"__VUE_PROD_HYDRATION_MISMATCH_DETAILS__": false,
"process.dev": false,
"import.meta.dev": false,
"process.test": false,
"import.meta.test": false
}
esbuildobject{
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
}
模式string"production"optimizeDepsesbuildOptionsobject{
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
}
excludearray[
"vue-demi"
]
publicDirresolveextensionsarray[
".mjs",
".js",
".ts",
".jsx",
".tsx",
".json",
".vue"
]
rootstring"/<srcDir>"服务器fsallowarray[
"/<rootDir>/.nuxt",
"/<srcDir>",
"/<rootDir>",
"/<workspaceDir>"
]
vuefeaturespropsDestructurebooleantrueisProductionbooleantruescripthoistStatictemplatecompilerOptionsobjecttransformAssetUrlsobject{
"video": [
"src",
"poster"
],
"source": [
"src"
],
"img": [
"src"
],
"image": [
"xlink:href",
"href"
],
"use": [
"xlink:href",
"href"
]
}
vueJsxobject{
"isCustomElement": {
"$schema": {
"title": "",
"description": "",
"tags": []
}
}
}
Vue.js 配置
compilerOptions将在构建时传递给 Vue 编译器的选项。
请参阅: Vue 文档
config可以在全局配置 Vue 应用。只有可序列化的选项才能在你的 nuxt.config 中设置。所有其他选项都应在 Nuxt 插件中于运行时设置。
请参阅: Vue app config 文档
propsDestructure启用 defineProps 的响应式解构
booleantrueruntimeCompiler在运行时包中包含 Vue 编译器。
booleanfalsetransformAssetUrlsimagearray[
"xlink:href",
"href"
]
imgarray[
"src"
]
sourcearray[
"src"
]
usearray[
"xlink:href",
"href"
]
videoarray[
"src",
"poster"
]
watch 属性允许你定义将在更改时重启 Nuxt 开发服务器的模式。
它是一个字符串或正则表达式数组。字符串可以是绝对路径,也可以是相对于 srcDir(以及任何层级的 srcDir)。正则表达式将与相对于项目 srcDir(以及任何层级的 srcDir)的路径进行匹配。
arraywatchers 属性允许你在 nuxt.config 中覆盖 watchers 配置。
chokidar将直接传递给 chokidar 的选项。
请参阅: chokidar
ignoreInitialbooleantrueignorePermissionErrorsbooleantruerewatchOnRawEvents当接收到特定类型的事件时,会触发监视器重启的事件类型数组。
webpackwatchOptions 将直接传递给 webpack。
请参阅: webpack@4 watch options.
aggregateTimeoutnumber1000aggressiveCodeRemoval硬替换 typeof process、typeof window 和 typeof document 以进行代码树抖动打包。
booleanfalseanalyze如果你使用 webpack,Nuxt 会使用 webpack-bundle-analyzer 来可视化你的包以及如何进行优化。
设置为 true 以启用包分析,或传递一个带有选项的对象用于 webpack或用于 vite.
object{
"template": "treemap",
"projectRoot": "/<rootDir>",
"filename": "/<rootDir>/.nuxt/analyze/{name}.html"
}
示例:
export default defineNuxtConfig({
webpack: {
analyze: {
analyzerMode: 'static',
},
},
})
cssSourceMap启用 CSS sourcemap 支持(在开发环境中默认为 true)。
booleanfalsedevMiddleware请参阅webpack-dev-middleware以获取可用选项。
statsstring"none"experimentsextractCSS启用通用 CSS 提取。
使用mini-css-extract-plugin在底层,你的 CSS 将被提取到单独的文件中,通常每个组件一个。这允许分别缓存你的 CSS 和 JavaScript。
booleantrue示例:
export default defineNuxtConfig({
webpack: {
extractCSS: true,
// or
extractCSS: {
ignoreOrder: true,
},
},
})
如果你想将所有 CSS 提取到一个文件中,有一个变通方法。但是,请注意,不建议将所有内容提取到一个文件中。提取到多个 CSS 文件对缓存和预加载隔离更好。它还可以通过仅下载和解析所需资源来提高页面性能。
示例:
export default defineNuxtConfig({
webpack: {
extractCSS: true,
optimization: {
splitChunks: {
cacheGroups: {
styles: {
name: 'styles',
test: /\.(css|vue)$/,
chunks: 'all',
enforce: true,
},
},
},
},
},
})
filenames自定义包文件名。
要更深入地了解 manifest 的使用,请参阅webpack 文档.
此示例将花哨的块名称更改为数字 ID
示例:
export default defineNuxtConfig({
webpack: {
filenames: {
chunk: ({ isDev }) => (isDev ? '[name].js' : '[id].[contenthash].js'),
},
},
})
appfunctionchunkfunctioncssfunctionfontfunctionimgfunctionvideofunctionfriendlyErrors设置为 false 以禁用由FriendlyErrorsWebpackPlugin.
booleantruehotMiddleware请参阅webpack-hot-middleware以获取可用选项。
loaders自定义 Nuxt 集成 webpack 加载器的选项。
css请参阅css-loader以获取可用选项。
esModulebooleanfalseimportLoadersnumber0urlfilterfunctioncssModules请参阅css-loader以获取可用选项。
esModulebooleanfalseimportLoadersnumber0moduleslocalIdentNamestring"[local]_[hash:base64:5]"urlfilterfunctionesbuildobject{
"target": "esnext",
"jsxFactory": "h",
"jsxFragment": "Fragment",
"tsconfigRaw": {}
}
请参阅: esbuild loader
file请参阅: file-loader options
默认:
{ "esModule": false }
esModulebooleanfalselimitnumber1000fontUrl请参阅: file-loader options
默认:
{ "esModule": false }
esModulebooleanfalselimitnumber1000imgUrl请参阅: file-loader options
默认:
{ "esModule": false }
esModulebooleanfalselimitnumber1000less{
"sourceMap": false
}
请参阅: less-loader options
pugPlain请参阅: pug options
sass请参阅: sass-loader options
默认:
{
"sassOptions": {
"indentedSyntax": true
}
}
sassOptionsindentedSyntaxbooleantruescss{
"sourceMap": false
}
请参阅: sass-loader options
stylus{
"sourceMap": false
}
vue请参阅vue-loader以获取可用选项。
compilerOptionsobjectpropsDestructurebooleantruetransformAssetUrlsobject{
"video": [
"src",
"poster"
],
"source": [
"src"
],
"img": [
"src"
],
"image": [
"xlink:href",
"href"
],
"use": [
"xlink:href",
"href"
]
}
vueStyle{
"sourceMap": false
}
optimizationminimize将 minimize 设置为 false 以禁用所有 minimizer。(默认在开发环境中禁用)。
booleantrueminimizer你可以将 minimizer 设置为自定义的插件数组。
runtimeChunkstring"single"splitChunksautomaticNameDelimiterstring"/"cacheGroupschunksstring"all"optimizeCSSOptimizeCSSAssets 插件选项。
当 extractCSS 启用时,默认为 true。
booleanfalse请参阅: css-minimizer-webpack-plugin 文档.
plugins添加 webpack 插件。
array示例:
import webpack from 'webpack'
import { version } from './package.json'
export default defineNuxtConfig({
webpack: {
plugins: [
// ...
new webpack.DefinePlugin({
'process.VERSION': version,
}),
],
},
})
postcss自定义 PostCSS Loader。与postcss-loader options
postcssOptionspluginsobject{
"autoprefixer": {},
"cssnano": {}
}
profile在 webpackbar 中启用剖析器。
它通常通过 CLI 参数 --profile 启用。
booleanfalse请参阅: webpackbar.
serverURLPolyfill用于提供 URL 和 URLSearchParams 的 polyfill 库。
默认为 'url'(参见包).
string"url"warningIgnoreFilters用于隐藏构建警告的过滤器。
array定义应用程序的工作区目录。
这通常在 monorepo 设置中使用。Nuxt 会尝试自动检测你的工作区目录,但你可以在此处覆盖。通常不需要配置此选项。
string"/<workspaceDir>"