vite工程化开发配置---持续更新

vite支持tsx开发

根据之前写的文章vue3+vite+ts+eslint+prettier+stylelint+husky+lint-staged+commitlint+commitizen+cz-git里面tsconfig配置了jsx相关选项,但是想要vite能够识别我们还需要配置一下
安装@vitejs/plugin-vue-jsx

pnpm i -D @vitejs/plugin-vue-jsx

vite.config.ts

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";export default defineConfig({plugins: [vue(), vueJsx()],
});

别名配置

vite.config.ts配置

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import path from "node:path";export default defineConfig({plugins: [vue(), vueJsx()],resolve: {alias: {"@": path.resolve(__dirname, "src"),"@com": path.resolve(__dirname, "src/components"),},// 导入时想要省略的扩展名列表。注意,不 建议忽略自定义导入类型的扩展名(例如:.vue),因为它会影响 IDE 和类型支持。extensions: [".ts", ".js", ".json", ".tsx"],},
});

tsconfig.app.json配置

{"extends": "./tsconfig.base.json","compilerOptions": {"composite": true,"lib": ["ES2020", "DOM", "DOM.Iterable"],// vue中tsx的配置"jsx": "preserve","jsxImportSource": "vue",// 添加对应的paths配置"paths": {"@/*": ["src/*"],"@com/*": ["src/components/*"]}},"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "types/*.d.ts"],"exclude": ["node_modules/**", "dist/**", "**/*.js", "vite.config.ts"]
}

测试一下有没有问题
在这里插入图片描述

vue,element-ui等 api,组件按需导入

安装插件

pnpm i -D unplugin-auto-import unplugin-vue-components

我们还没有配置的时候项目的目录如下:
在这里插入图片描述
然后我们配置一下vite.config.ts

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueJsx from "@vitejs/plugin-vue-jsx";
import path from "node:path";
import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";export default defineConfig({plugins: [vue(),vueJsx(),// 新增AutoImport({include: [/\.[tj]sx?$/, // .ts, .tsx, .js, .jsx/\.vue$/,/\.vue\?vue/, // .vue/\.md$/, // .md],imports: [// 插件预设好包"vue","vue-router",],}),// 新增Components({}),],resolve: {alias: {"@": path.resolve(__dirname, "src"),"@com": path.resolve(__dirname, "src/components"),},// 导入时想要省略的扩展名列表。注意,不 建议忽略自定义导入类型的扩展名(例如:.vue),因为它会影响 IDE 和类型支持。extensions: [".ts", ".js", ".json", ".tsx"],},
});

这个时候插件会自动给我们生成两个文件一个是auto-imports.d.tscomponents.d.ts
在这里插入图片描述
这个时候我们才配置一下vite.config.ts里面的AutoImportComponents

AutoImport({include: [/\.[tj]sx?$/, // .ts, .tsx, .js, .jsx/\.vue$/,/\.vue\?vue/, // .vue/\.md$/, // .md],imports: [// 插件预设好包"vue","vue-router",],eslintrc: {// 为true的时候,每次启动项目都会生成 auto-imports.d.ts 以及 .eslintrc-auto-import.json、// .eslintrc-auto-import.json这个我们需要在.eslintrc.cjs的extends里面去引入,否则会报错enabled: true,},dts: "./auto-imports.d.ts", // 插件给自动生成的声明文件,需要我们手动导入
}),
Components({dts: "./components.d.ts", // 插件给自动生成的声明文件,需要我们手动导入dirs: [], // 如果我们自己的业务组件,如`src/components`下面写的组件也想实习那自动按序导入的话,可以在这里面配置上路径
})

这个时候发现根目录下又多了一个文件.eslintrc-auto-import.json
在这里插入图片描述
所以我们也要修改一下.eslintrc.cjs
在这里插入图片描述
为了ts不报错,我们也需要配置一下tsconfig.app.json
在这里插入图片描述

然后我们安装element-plus

pnpm i element-plus

关于组件的按需导入官方文档上有介绍
在这里插入图片描述
我们照着配置好就行
这个时候我们可以在App.vue中测试一下
在这里插入图片描述
保存之后,我们可以看一下components.d.ts
在这里插入图片描述
ElButton组件就被动态引入了
在这里插入图片描述
也可以在文件中使用el-input,可以观察一下components.d.ts发现插件会自动帮我们把ElInput也给动态引入了

vite proxy代理配置

配置代理用于开发环境下解决接口跨域问题,要是后端人好给解决了跨域可以不配置
关于代理的配置可以看这篇文章vite配置之获取.env.[mode]下的数据
这个时候vite.config.ts配置如下
在这里插入图片描述

unocss配置

可以看这篇文章vite配置unocss

less 全局变量配置

css: {// 预处理器配置项preprocessorOptions: {less: {charset: false,// 注意 ";" 不要漏掉additionalData: '@import "./src/style/index.less";',},},},

vite build模式下去掉文件中的console,debugger

esbuild: {drop: command === 'serve' ? [('console', 'debugger')] : [],}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何压缩pdf文件大小,怎么压缩pdf文件大小

在数字化时代,pdf文件因其稳定的格式和跨平台兼容性,成为了工作与学习中不可或缺的一部分。然而,随着pdf文件内容的丰富,pdf文件的体积也随之增大,给传输和存储带来了不少挑战。本文将深入探讨如何高效压缩pdf文件大小…

小米手机短信怎么恢复?不用求人,3个技巧一网打尽

当你突然发现安卓手机里的重要短信不见了,是不是感到一阵心慌意乱?别急,不用求人,更不用焦虑。作为基本的社交功能,短信是我们与外界沟通的重要桥梁,当删除后,短信怎么恢复呢?今天&a…

重生奇迹MU 有向导不迷路

欢迎来到重生奇迹MU冒险世界!为了让您更好地享受游戏乐趣,我们特别为您准备了一位贴心的导游,让您在游戏中不再迷路。跟随我们的导游,您将更快地了解游戏规则,更快地升级,更快地获得胜利!快来加…

【pytorch23】MNIST测试实战

理解 训练完之后也需要做测试 为什么要做test? 上图蓝色代表train的accuracy 下图蓝色代表train的loss 基本上符合预期,随着epoch增大,train的accuracy也会上升,loss也会一直下降,下降到一个较小的程度 但是如果只看…

9.2 栅格图层符号化单波段灰度渲染

文章目录 前言单波段灰度QGis设置为单波段灰度二次开发代码实现单波段灰度 总结 前言 介绍栅格图层数据渲染之单波段灰度显示说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps 单波段灰度 以“3420C_2010_327_RGB_LATLNG.tif”数据为例,在QGis中…

全光谱灯和普通led灯的区别?忠告行业三大隐患弊端!

随着社会的迅猛发展和生活步伐的加速,科技产品层出不穷,其中全光谱灯作为书房的新宠,备受瞩目。它是否真如其宣传的那样具有多重优势,尤其是对那些格外注重视力健康的人群而言,全光谱灯是否会带来潜在的健康风险&#…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十二章 Linux 权限管理

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

Java基础(十六):String的常用API

目录 一、构造器方法二、String与字节数组的转换(编码与解码)1、字符串 --> 字节数组:(编码)2、字节数组 --> 字符串:(解码)3、iso-8859-1的特殊用法4、byte数组的数字表示 三…

Java版Flink使用指南——从RabbitMQ中队列中接入消息流

大纲 创建RabbitMQ队列新建工程新增依赖编码设置数据源配置读取、处理数据完整代码 打包、上传和运行任务测试 工程代码 在《Java版Flink使用指南——安装Flink和使用IntelliJ制作任务包》一文中,我们完成了第一个小型Demo的编写。例子中的数据是代码预先指定的。而…

判断对象能否回收的两种方法,以及JVM引用

判断对象能否回收的两种方法:引用计数算法,可达性分析算法 引用计数算法:给对象添加一个引用计数器,当该对象被其它对象引用时计数加一,引用失效时计数减一,计数为0时,可以回收。 特点&#xf…

自动驾驶SLAM又一开源巅峰之作!深挖时间一致性,精准构建超清地图

论文标题: DTCLMapper: Dual Temporal Consistent Learning for Vectorized HD Map Construction 论文作者: Siyu Li, Jiacheng Lin, Hao Shi, Jiaming Zhang, Song Wang, You Yao, Zhiyong Li, Kailun Yang 导读: 本文介绍了一种用于自动…

突发!马斯克3140亿参数Grok开源!Grok原理大公开!

BIG NEWS: 全球最大开源大模型!马斯克Grok-1参数量3410亿,正式开源!!! 说到做到,马斯克xAI的Grok,果然如期开源了! 就在刚刚,马斯克的AI创企xAI正式发布了此前备受期待大模型Grok-1,其参数量达…

硅纪元视角 | 虚拟神经科学的突破:AI「赛博老鼠」诞生

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…

企业需要什么样的MES?

MES(英文全称:Manufacturing Execution System),即制造执行系统,是面向车间生产的管理系统。它位于上层计划管理系统(如ERP)与底层工业控制(如PCS层)之间,是制…

【Linux】:服务器用户的登陆、删除、密码修改

用Xshell登录云服务器。 1.登录云服务器 先打开Xshell。弹出的界面点。 在终端上输入命令ssh usernameip_address,其中username为要登录的用户名,ip_address为Linux系统的IP地址或主机名。 然后输入密码进行登录。 具体如下: 找到新建会话…

Windows与time.windows.com同步time出错(手把手操作)

今天我来针对Windows讲解Time同步 时间问题 计算机的时间不同,过快或者过慢。(可以和自己的手机时间进行对比,手机的时间进行同步的频率会比计算机更快,因此更精准)计算机time过快和过慢,会导致使用过程中…

想实现随时随地远程访问?解析可道云teamOS内网穿透功能

在数字化时代,无论是个人还是企业,都面临着数据共享与远程访问的迫切需求。 比如我有时会需要在家中加班,急需访问公司内网中的某个关键文件。 然而,由于公网与内网的天然隔阂,这些需求往往难以实现。这时&#xff0c…

代码随想录 链表章节总结

移除链表元素 && 设计链表 学会设置虚拟头结点 翻转链表 leetcode 206 https://leetcode.cn/problems/reverse-linked-list/description/ 方法一:非递归新开链表 头插法:创建一个新的链表,遍历旧链表,按顺序在新链表使…

AIGC | 在机器学习工作站安装NVIDIA CUDA® 并行计算平台和编程模型

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] 0x02.初识与安装 CUDA 并行计算平台和编程模型 什么是 CUDA? CUDA(Compute Unified Device Architecture)是英伟达(NVIDIA)推出的并行计算平台和编…

idea提交代码或更新代码一直提示token然后登陆失败无法提交或者更新代码

最近因为换了电脑需要对开发环境做配置, 遇到了这个问题, 应该是因为我们用到了gitlab,默认的最新的idea会有gitlab插件 强制录入gitlab的token,如果gitlab不支持token的验证那么问题就来了 , 不管怎么操作都无法提交或…