大数跨境
0
0

nuxt的安装及目录结构

nuxt的安装及目录结构 科塔锐行科技
2024-08-04
2
导读:大家好!今天我将为大家介绍Nuxt。我们公司的ThisAI前端正是基于Nuxt框架开发的,Nuxt是一款非常优秀的框架。

    大家好!今天我将为大家介绍Nuxt。我们公司的ThisAI前端正是基于Nuxt框架开发的,Nuxt是一款非常优秀的框架。接下来,我们将详细讲解Nuxt的安装过程以及其目录结构。希望对大家有所帮助!


一、 nuxt的介绍

1.  首先Nuxt 非常在哪里呢?

我就用人话来说了,但是也还是需要些vue3 的功底。 

  • - 组件自动导入,无需安装vue的vue-Router的路由配置(他内置封装了vue-Router)和布局layout。

  • - 统一配置,SSR 服务端渲染,SEO的优化了。


这么好用的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.ts
export default defineNuxtConfig({
compatibilityDate: "2024-08-01",
// devtools: { enabled: false },
modules: ["@unocss/nuxt", "@element-plus/nuxt"],
...
```
4.unocss官方配置
在项目根目录新建unocsss.config.ts,都是官方推荐配置,不好说啥
```js
// uno.config.ts
import 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 @unocss/preset-wind   pnpm i @iconify-json/ep @unocss/preset-rem-to-px @unocss/transformer-directives

@unocss/preset-wind # Tailwind CSS 的预设

@iconify-json/ep # 一个巨大的图标库

@unocss/preset-rem-to-px #设置1em =x px,

@unocss/transformer-directives # 可以使用@apply // 2. uno.config.tsimport { defineConfig } from 'unocss'import presetWind from '@unocss/preset-wind'

export default defineConfig({ presets: [ presetWind(), ],})

...

此时运行项目,就能使用图标和原子化写css了

tailwindcss预设能用的:


三、nuxt的目录结构

nuxt-project/├── .nuxt/                  # 自动生成的目录,包含运行时的 Nuxt.js 应用代码├── assets/                 # 存放需要 Webpack 处理的静态资源│   ├── css/│   ├── js/│   └── images/├── components/             # Vue 组件目录,存放可复用的 Vue 组件│   ├── MyButton.vue│   └── Header.vue├── layouts/                # 布局组件目录,定义应用的布局结构│   ├── default.vue│   └── custom.vue├── middleware/             # 中间件目录,存放应用的中间件│   ├── auth.js│   └── locale.js├── pages/                  # 页面组件目录,存放根据文件结构自动生成路由的 Vue 组件│   ├── index.vue│   ├── about/│   │   └── index.vue│   └── user/│       ├── _id.vue│       └── index.vue├── plugins/                # 插件目录,存放需要在应用启动时加载的 JavaScript 插件│   ├── axios.js│   └── vuetify.js├── static/                 # 存放不需要 Webpack 处理的静态资源│   ├── favicon.ico│   └── robots.txt├── store/                  # Vuex 状态管理目录,存放应用的状态管理代码│   ├── index.js│   └── modules/│       ├── cart.js│       └── user.js├── nuxt.config.js          # Nuxt.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文件,像这样子配置vite    css: {      preprocessorOptions: {        scss: {          additionalData: ` @use "@/assets/element/replace.scss" as *;                           @use "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目录,@ ==根目录, ~ ==  @

看这里。这都是默认的,不用配置路径别名了

【声明】内容源于网络
0
0
科塔锐行科技
科塔锐行科技(Quota)致力于提供先进互联网科技服务,包括AI模型能力相关,跨端产品处理,面向企业和个人的效率产品。
内容 62
粉丝 0
科塔锐行科技 科塔锐行科技(Quota)致力于提供先进互联网科技服务,包括AI模型能力相关,跨端产品处理,面向企业和个人的效率产品。
总阅读3
粉丝0
内容62