首页 > 其他分享 >常用vue3脚手架配置流程

常用vue3脚手架配置流程

时间:2024-12-24 09:43:15浏览次数:3  
标签:vue -- 流程 vue3 ts pinia router import 脚手架

我目前看到的脚手架搭建,多多少少都有点问题。我目前创建了很多项目,已经习惯了以下一套流程,下面总结一下:

一、创建vite项目

npm create vite@latest 
npm install
npm run dev

二、安装element plus

npm install element-plus --save
npm install -D unplugin-vue-components unplugin-auto-import

在vite.config.ts中

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

export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver({ importStyle: 'sass' })] // importStyle: "sass" 
    }),
  ],
})

三、配置根目录别名

这里的问题会比较多,特别是使用ts的,别名配置总归会有点问题,只是因为教程里大多都少写了一个依赖包。
在vite.config.ts中配置:

import { fileURLToPath, URL } from 'node:url'

export default defineConfig({
  plugins: [
    vue(),
    // element plus 配置
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
})

一般到这都会报错Vue: Cannot find module 'node:url' or its corresponding type declarations.,这是因为这个node:url没有导进来。

npm install --save-dev @types/node

四、配置sass

npm install sass -D

按照我的习惯,是在src下创建一个styles文件夹

--styles
 |--index.scss  //统一出口,在main.ts中暴露
 |--global.scss  //全局样式,可以在scss中直接使用$value

对于global.scss,在vite.config.ts配置全局

import {defineConfig} from 'vite'
···
export default defineConfig({
    plugins: [
        vue(),
        //组件配置 
    ],
    resolve: {
       //别名配置 
    },
    css: {
        preprocessorOptions: {
            scss: {
                // additionalData: '@import "@/styles/global.scss";' 这行代码可能会导致报错
                additionalData: '@use "@/styles/global.scss" as *;' //建议使用这行代码
            }
        }
    }
})

在main.ts中挂载

import "./styles/index.scss";

五、配置vue-router

npm i vue-router@4

在src下创建一个router文件夹

--router
 |--index.ts  //统一出口,在main.ts中暴露
 |--router.ts  //各个路由

在index.ts中

import { createRouter, createWebHistory } from "vue-router";
import { constantRoute } from "./router";

const router = createRouter({
    history: createWebHistory(import.meta.env.BASE_URL),
    routes: constantRoute,
    scrollBehavior() {
        return {
            left: 0,
            top: 0,
        };
    },
});

export default router;

在router.ts中

export const constantRoute = [
    {
        path: "/",
        name: "layout",
        component: () => import("@/layout/index.vue"),  //我喜欢把介绍页存入layout并配置为根路径
    }
];

在main.ts中挂载

import router from "./router";
app.use(router);

六、配置pinia

npm install pinia
npm install pinia-plugin-persistedstate

在src下创建一个stores文件夹

--stores
 |--index.ts  //统一出口
 |--modules
   |--test.ts //可以根据不同功能再细分文件夹

在main.ts中挂载

import { createPinia } from "pinia";
app.use(createPinia());

在index.ts中

import { createPinia } from "pinia"; //引入pinia
import piniaPluginPersistedState from "pinia-plugin-persistedstate"; //引入持久化插件

const pinia = createPinia();
pinia.use(piniaPluginPersistedState);

export default pinia;
export * from "./modules/test.ts"; 

标签:vue,--,流程,vue3,ts,pinia,router,import,脚手架
From: https://www.cnblogs.com/yapi-wwj/p/18626663

相关文章

  • hotspot-vue3 图片拖动划分热点区域 使用
    github地址https://github.com/shadow-Fiend/hotspot-vue3测试代码<template><divclass="interactive-image"><hotspot:image="image":zonesInit="zones":types="types":minSize="52":switchOpt......
  • vue3 使用拖动插件vuedraggable@next
    下面是一个使用VueDraggableNext的Vue3组件示例。这个示例展示了一个可拖动的列表。安装依赖首先,确保安装了VueDraggableNext:npminstallvuedraggable@next示例组件<template><div><h2>可拖动列表</h2><draggablev-model="items":animation="200&q......
  • Spark任务的执⾏流程
    Spark任务的执行流程涉及多个组件和步骤的协同工作,以下是其详细的执行流程:提交任务编写应用程序:用户首先使用Spark支持的编程语言(如Scala、Java、Python等)编写Spark应用程序,在应用程序中定义计算逻辑,包括创建RDD(弹性分布式数据集)、对RDD进行转换和行动操作等。提......
  • 数据流图和流程图的区别
            在结构化建模中,数据流图和流程图都是非常重要的工具,它们为开发人员提供了强大的手段来分析和设计系统。尽管两者在表面上看起来有些相似,但它们在功能、用途和表达方式上存在显著的区别。本文将详细探讨数据流图和流程图的区别,并结合理论和实践经验,帮助读者更好......
  • 【嵌入式Linux】---- 基于petaLinux和SDK开发的LED驱动和应用测试(全流程实战)
    1配置petaLinux环境变量在Linuxproject目录下,打开终端,输入命令source/opt/pkg/petalinux/2018.3/settings.sh2新建petaLinux工程petalinux-create-tproject--templatezynq-nZYNQ7010_LED3配置petaLinux工程输入cdZYNQ7010_LED,进入刚刚创建的工程文件;输入p......
  • 数学竞赛网站:全流程分析与技术实现
    3.1可行性分析尽管系统是根据用户的要求进行制作,但是在确定制作前,有必要分析其可行性。3.1.1操作可行性分析开发本系统需要用到的工具,本人都比较熟悉,因此可以使用这些工具,完整开发数学竞赛网站。此外,数学竞赛网站在功能上,基本都是完成信息的处理,涵盖了添加,修改,删除等,而且......
  • Python+Vue3+Django中国戏曲文化传播系统
    文章目录具体实现截图项目介绍和开发技术介绍开发技术核心代码部分展示项目结构分析文章目录/写作提纲参考源码/演示视频获取方式具体实现截图项目介绍和开发技术介绍(Pycharm毕业设计mysql)拟解决的主要问题和技术关键(1)如何将前端页面与数据库进行互连;(2)......
  • Python+Vue3+Django建材建筑工具租赁系统
    文章目录具体实现截图项目介绍和开发技术介绍开发技术核心代码部分展示项目结构分析文章目录/写作提纲参考源码/演示视频获取方式具体实现截图项目介绍和开发技术介绍(Pycharm毕业设计mysql)拟解决的主要问题和技术关键(1)如何将前端页面与数据库进行互连;(2......
  • SpiderFlow平台v0.5.0流程的执行过程
    流程执行过程:1. 流程启动流程的执行通常从一个开始节点开始,该节点是整个爬虫任务的起点。开始节点没有实际的功能作用,主要作用是标记流程的起始。执行顺序:在执行过程中,系统按照流程中的连接线顺序依次执行每个节点。2. 爬取节点执行爬取节点(通常是HTTP请求节点)是爬虫......
  • Vue3——生命周期
    生命周期分为四个阶段:创建、挂载、更新、销毁(卸载)Vue2:创建阶段:beforeCreate、created挂载阶段:beforeMount、mounted更新阶段:beforeUpdate、updated销毁阶段:beforeDestroy、destroyedvue3:创建阶段:setup挂载阶段:onBeforeMount、onMounted......