大家好!今天我将为大家介绍Nuxt。我们公司的ThisAI前端正是基于Nuxt框架开发的,Nuxt是一款非常优秀的框架。接下来,我们将详细讲解Nuxt的安装过程以及其目录结构。希望对大家有所帮助!
一、 nuxt的介绍
1. 首先Nuxt 非常在哪里呢?
我就用人话来说了,但是也还是需要些vue3 的功底。
这么好用的Nuxt是谁开发的呢? ---- Anthony Fu
可以去看看他的博客 AnthonyFu
2.现在的开发标配:(仍然是antfu做的)
Nuxt + Icons + Unocss
Nuxt本身就能够一键引入Element UI、Axios等模块,真是非常方便!而现在,它还支持图标的引入。值得一提的是,UnoCSS是一种原子化CSS,与Tailwind CSS类似,但据说在性能和灵活性上更为出色。这无疑为开发者提供了更多的选择和便利。
- 图标库 https://icones.js.org/、
二、Nuxt的安装
官网已经很说的很明白了 Installation · Get Started with Nuxt
[Installation · Get Started with Nuxt]()
1. 也可以使用国内中文版的高质量文档
2. 在vscoode安装两个插件


- unocss 高亮显示 (必装)
- Tounocss 帮你把css样式转化为简单写法
就是这种

3. 安装unocss,nuxt 有插件,帮你在配置文件引入

自动导入的
//nuxt.config.tsexport default defineNuxtConfig({compatibilityDate: "2024-08-01",// devtools: { enabled: false },modules: ["@unocss/nuxt", "@element-plus/nuxt"],...```4.unocss官方配置在项目根目录新建unocsss.config.ts,都是官方推荐配置,不好说啥```js// uno.config.tsimport presetRemToPx from "@unocss/preset-rem-to-px";import {defineConfig,presetAttributify,presetIcons, //这个可以不用把图标名字写在class里面,图标是块元素presetTypography,presetUno, //预置的比如 mt-1 === mragin-top:1px 的简介写法。presetWebFonts,transformerDirectives,transformerVariantGroup,} from "unocss";export default defineConfig({shortcuts: [['btn', 'px-4 py-1 rounded inline-block bg-teal-600 text-white cursor-pointer hover:bg-teal-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'],],theme: {colors: {// ...},},presets: [presetUno(),presetRemToPx({baseFontSize: 4,}),presetAttributify(),presetIcons({scale: 1.2,warn: true,}),presetTypography(),presetWebFonts({fonts: {// ...},}),],transformers: [transformerDirectives(), transformerVariantGroup()],});
可以说一下的就是:用tailwind的预置css,和其他包
5.改变unocss的预设
[Wind 预设](https://unocss.nodejs.cn/presets/wind)
1.安装pnpm add -D /preset-windpnpm i -json/ep /preset-rem-to-px /transformer-directives/preset-wind # Tailwind CSS 的预设-json/ep # 一个巨大的图标库/preset-rem-to-px #设置1em =x px,/transformer-directives # 可以使用// 2. uno.config.tsimport { defineConfig } from 'unocss'import presetWind from '@unocss/preset-wind'export default defineConfig({presets: [presetWind(),],})...
此时运行项目,就能使用图标和原子化写css了
tailwindcss预设能用的:

三、nuxt的目录结构
nuxt-project/│├── .nuxt/├── assets/│ ├── css/│ ├── js/│ └── images/│├── components/│ ├── MyButton.vue│ └── Header.vue│├── layouts/│ ├── default.vue│ └── custom.vue│├── middleware/│ ├── auth.js│ └── locale.js│├── pages/│ ├── index.vue│ ├── about/│ │ └── index.vue│ └── user/│ ├── _id.vue│ └── index.vue│├── plugins/│ ├── axios.js│ └── vuetify.js│├── static/│ ├── favicon.ico│ └── robots.txt│├── store/│ ├── index.js│ └── modules/│ ├── cart.js│ └── user.js│├── nuxt.config.js├── package.json└── README.md
eeeee...是不是感觉没啥收获。
网上的教程很多,你们去看看别的大大基础。
这些目录文件夹,最难的就是nuxt.config.ts文件了。
assets和pulic的区别,public的文件可以通过url访问到,一句话就是放公用的资源,assets资源只能给软件使用,外部无法访问。
路由,pages下的目录和文件名对应着url地址, [...404]命名的就是找不到路径就会访问。
还是说说配置文件吧!
2. nust.config.ts
// https://nuxt.com/docs/api/configuration/nuxt-configimport { defineNuxtConfig } from "nuxt/config";export default defineNuxtConfig({compatibilityDate: "2024-08-01",// devtools: { enabled: false },modules: ["@unocss/nuxt", "@element-plus/nuxt"],css: ["@unocss/reset/tailwind-compat.css"],//css和下面vite的引入都是全局引入//但是经过实践,scss全局引入要写到下面的vite里面去,两者二选一。vite: {//不要新建viteconfig.ts文件,像这样子配置vitecss: {preprocessorOptions: {scss: {additionalData: ` "@/assets/element/replace.scss" as *;"assets/variables.scss" as* ;`,},},},},elementPlus: {importStyle: "scss",// themes:["dark"]},router: {},//常量配置,public是客户端可以访问到的runtimeConfig:{count:1,apiSecret: '',// 可以由 NUXT_API_SECRET 环境变量覆盖public:{apiBase:process.env.NUXT_API_BASE,// 可以由 NUXT_PUBLIC_API_BASE 环境变量覆盖},},$production: {routeRules: {'/**': { isr: true }}},$development: {//},});
2.不用配置路径别名了
配置中其实还有些隐形的配置:
没有scr目录,@ ==根目录, ~ == @
看这里。这都是默认的,不用配置路径别名了

