Nuxt3【项目配置】nuxt.config.ts

2024-08-20 22:20
文章标签 配置 项目 config ts nuxt nuxt3

本文主要是介绍Nuxt3【项目配置】nuxt.config.ts,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

按环境添加配置

export default defineNuxtConfig({// 生产环境的配置$production: {routeRules: {'/**': { isr: true }}},// 开发环境的配置$development: {//}
})

运行时的配置 runtimeConfig

export default defineNuxtConfig({runtimeConfig: {// 只在服务器端可用的私有键apiSecret: '123',// public中的键也可以在客户端使用public: {apiBase: '/api'}}
})
  • 默认情况下,这些键只在服务器端可用。
  • runtimeConfig.public 中的键也可以在客户端使用

页面中通过useRuntimeConfig()组合函数获取运行时的配置

const runtimeConfig = useRuntimeConfig()

模块 modules

export default defineNuxtConfig({modules: [// 使用包名(推荐用法)'@nuxtjs/example',// 加载本地模块'./modules/example',// 添加带有内联选项的模块['./modules/example', { token: '123' }]// 内联模块定义async (inlineOptions, nuxt) => { }]
})

别名 alias

手动将库别名为CJS版本

export default defineNuxtConfig({alias: {'sample-library': 'sample-library/dist/sample-library.cjs.js'}
})

组件 components

自定义自动导入的组件目录

  • ~/components 要写在末尾
  • pathPrefix 配置导入组件时,是否包含组件的目录(默认包含)
  • prefix 可自定义导入组件时的前缀

最终效果详见下方代码中的注释

export default defineNuxtConfig({components: [// ~/calendar-module/components/event/Update.vue => <EventUpdate />{ path: '~/calendar-module/components' },// ~/user-module/components/account/UserDeleteDialog.vue => <UserDeleteDialog />{ path: '~/user-module/components', pathPrefix: false },// ~/components/special-components/Btn.vue => <SpecialBtn />{ path: '~/components/special-components', prefix: 'Special' },// 如果您想要覆盖 `~/components` 的子目录,请确保它是最后一个。//// ~/components/Btn.vue => <Btn />// ~/components/base/Btn.vue => <BaseBtn />'~/components']
})

禁用自动导入组件

export default defineNuxtConfig({components: {dirs: []}
})

导入 imports

配置自动导入自定义文件夹或第三方包导出的函数。

imports: {// 自动导入 stores 文件夹中的 pinia stores dirs: ['stores']
}

自动导入第三方包

范例:启用从vue-i18n包中自动导入useI18n组合式函数

  imports: {presets: [{from: 'vue-i18n',imports: ['useI18n']}]}

禁用自动导入组合式函数和实用函数

export default defineNuxtConfig({imports: {autoImport: false}
})

渲染模式 ssr

启用仅客户端渲染

ssr: false

此时应该在 /app/spa-loading-template.html 中放置一个HTML文件,其中包含你想要用于渲染加载屏幕的HTML。

路由规则 routeRules

可按路由配置不同的渲染模式

export default defineNuxtConfig({routeRules: {// 主页在构建时预渲染'/': { prerender: true },// 产品页面按需生成,后台自动重新验证'/products/**': { swr: 3600 },// 博客文章按需生成,直到下一次部署前持续有效'/blog/**': { isr: true },// 管理仪表板仅在客户端渲染'/admin/**': { ssr: false },// 在API路由上添加cors头'/api/**': { cors: true },// 跳转旧的URL'/old-page': { redirect: '/new-page' }}
})

具体的配置项有:

  • redirect: string - 定义服务器端重定向。
  • ssr: boolean - 禁用应用程序的服务器端渲染部分,使其仅支持SPA,使用ssr: false。
  • cors: boolean - 使用cors: true自动添加CORS头部,你可以通过覆盖headers来自定义输出。
  • headers: object - 为你的站点的某些部分添加特定的头部,例如你的资源文件。
  • swr: number|boolean - 为服务器响应添加缓存头部,并在服务器或反向代理上缓存它,以配置的TTL(存活时间)进行缓存。Nitro的node-server预设能够缓存完整的响应。当TTL过期时,将发送缓存的响应,同时在后台重新生成页面。如果使用true,则添加了一个不带MaxAge的stale-while-revalidate头部。
  • isr: number|boolean - 行为与swr相同,除了我们能够将响应添加到支持此功能的CDN缓存中(目前支持Netlify或Vercel)。如果使用true,内容将在CDN中持久存在,直到下一次部署。
  • prerender:boolean - 在构建时预渲染路由,并将其包含在你的构建中作为静态资源。
  • experimentalNoScripts: boolean - 禁用Nuxt脚本的渲染和JS资源提示,用于你站点的某些部分。

构建 build

转译库

export default defineNuxtConfig({build: {transpile: ['sample-library']}
})

类型检查 typescript

构建时启用类型检查

export default defineNuxtConfig({typescript: {typeCheck: true}
})

启用严格的类型检查

export default defineNuxtConfig({typescript: {strict: true}
})

添加 vite 配置

export default defineNuxtConfig({vite: {vue: {customElement: true},vueJsx: {mergeProps: true}}
})

完整的 vue 配置项见 https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue

完整的 vueJsx 配置项见 https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue-jsx

添加 webpack 配置

export default defineNuxtConfig({webpack: {loaders: {vue: {hotReload: true,}}}
})

详见 https://www.nuxt.com.cn/docs/api/nuxt-config#loaders

启用实验性 Vue 功能

export default defineNuxtConfig({vue: {defineModel: true,propsDestructure: true}
})

更多配置

见官网 https://www.nuxt.com.cn/docs/api/nuxt-config

这篇关于Nuxt3【项目配置】nuxt.config.ts的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091339

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po