vite+ts+elementPlus+tailwindcss+nuxt3项目的搭建与配置

一、起步

1. 创建nuxt3项目:npm create nuxt <项目名称>

二、安装用到的依赖

1. element-plus:

npm install -D @element-plus/nuxt
npm install element-plus
npm install @element-plus/icons-vue
npm install -D unplugin-vue-components unplugin-auto-import

2. pinia:

npm install @pinia/nuxt
npm install pinia
npm install pinia-plugin-persistedstate

3. tailwindcss:

npm install -D @nuxtjs/tailwindcss

4. animate.css

npm install animate.css

三、在nuxt.config.ts处配置

其中配置element-plus的icon只需要在配置里写上

elementPlus: {
    icon: 'ElIcon',
    importStyle: 'scss'
}

然后页面使用时,仅需要在普通项目使用方法的<el-icon> <Right /></el-icon>的基础上加上ElIcon,即:

<el-icon><ElIconRight /></el-icon>

不需要像网上大多数文章那样重新注册(可能有像我这样配置的文章,不过我没有找到,我因为不相信element的导入会这么麻烦,然后根据element-plus官网找到了示例项目https://github.com/element-plus/element-plus-nuxt-starter,参照了里面的配置方法)

具体代码:

import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineNuxtConfig({
  ssr: true,
  devServer: {
    host: 'localhost, 0.0.0.0', // 这样配置,控制台就能像vite那样同时输出localhost地址和本机ip地址
    port: 3000,
  },
  // 配置elementPlus的icon
  elementPlus: {
    icon: 'ElIcon',
    importStyle: 'scss',
    themes: ['dark'],
  },
  vite: {
    plugins: [
      // 配置elementPlus按需自动导入
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        resolvers: [ElementPlusResolver()],
      }),
    ],
    server: {
      open: true,
      proxy: {
        '/api': {
          target: `https://xx.xx`,
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/api/, ''),
        },
      },
    },
  },
  app: {
    // 配置html的head标签的内容
    head: {
      htmlAttrs: {
        lang: 'en',
      },
      meta: [
        { charset: 'utf-8' },
        { name: 'viewport', content: 'width=device-width,initial-scale=1.0' },
        { 'http-equiv': 'X-UA-Compatible', content: 'IE=edge' },
      ],
      link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
    },
  },
  // 全局引入css
  css: [
    'animate.css/animate.min.css', // 使用方法:animate__animated [具体动画类]
    '~/assets/css/main.scss',
  ],
  // 配置modules
  modules: [
    '@nuxt/content',
    '@nuxt/eslint',
    '@nuxt/image',
    '@nuxt/scripts',
    '@nuxt/test-utils',
    '@element-plus/nuxt',
    '@pinia/nuxt',
    'pinia-plugin-persistedstate/nuxt',
    '@nuxtjs/tailwindcss',
  ],
})

四、路由

nuxt项目的pages文件夹下面就是一个一个路由。

比如pages->about->index.vue,此时网页地址路径就是:/about

动态路由:pages->about->[id].vue,网页地址路径:/about/1或/about/22这类

附vscode保存时自动格式化文件的方式:

1. 打开命令面板(Ctrl+Shift+P)

2. 输入Preferences: Open Settings (JSON),按需要选择工作区或者默认设置等选项

3. 在该json文件里输入 "editor.formatOnSave": true 即可

参考:

1. 安装 - 开始使用 - Nuxt 中文文档

2. https://github.com/element-plus/element-plus-nuxt-starter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值