【vite好用的配置】自动导入组件、vue中的hook、路径解析、打包配置、本地运行反向代理配置

前言

之前出了一篇自己搭建 后台管理系统的文章,今天顺便把vite配置,涉及到的一些给大家分享吧。
按需食用哈。

文章目录

  • 前言
    • 一、 自动导入vue中的hook、ref等
      • 1. 安装插件
      • 2. 配置 Vite(vite.config.ts 或 vite.config.js)
        • 1)基础配置
        • 2)自定义导入(示例:Pinia、Vue Router)
        • 3)与组件库集成(示例:NutUI、Element Plus)
        • 4)自定义规则
        • 5)配置关键字说明
        • 6)在项目中使用
    • 二、 自动导入vue中的hook、ref等
      • 1. 安装插件
      • 2. 配置 Vite(vite.config.ts 或 vite.config.js)
        • 1)基础配置
        • 2)与 UI 组件库集成(示例:NutUI、Element Plus)
        • 3)配置关键字说明
        • 4)在项目中的使用
        • 5)自动导入组件、api混合使用
    • 三、 配置@别名
      • 1. 安装依赖
      • 2. 配置 Vite(vite.config.ts 或 vite.config.js)
        • 1)基础配置
        • 2)配置 TypeScript 支持(如果使用 TypeScript)
      • 3. 配置 Vue CLI 项目配置
        • 1)修改 `vue.config.ts`
        • 2)配置 TypeScript 支持(如果使用 TypeScript)
    • 四、 打包配置
    • 五、 代理配置

一、 自动导入vue中的hook、ref等

1. 安装插件

npm install unplugin-auto-import --save-devyarn add unplugin-auto-import -D

在这里插入图片描述

2. 配置 Vite(vite.config.ts 或 vite.config.js)

这边用的vue,所以就是在 vite.config.ts 中配置咯

1)基础配置
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import AutoImport from 'unplugin-auto-import/vite';export default defineConfig({plugins: [vue(),AutoImport({// 自动导入 Vue 相关函数,如:ref, reactive, toRef 等imports: ['vue'],// 生成自动导入的类型声明文件dts: 'src/auto-imports.d.ts',}),],
});
2)自定义导入(示例:Pinia、Vue Router)
AutoImport({imports: ['vue','vue-router',{pinia: ['defineStore', 'storeToRefs'],},],dts: 'src/auto-imports.d.ts',
});
3)与组件库集成(示例:NutUI、Element Plus)
AutoImport({imports: ['vue',{'@nutui/nutui': ['Button', 'Toast'], // NutUI'element-plus': ['ElMessage', 'ElNotification'], // Element Plus},],dts: 'src/auto-imports.d.ts',
});
4)自定义规则
AutoImport({resolvers: [// 自定义解析器,例如自动导入 NutUI 组件(name) => {if (name.startsWith('Nut')) {return {name: name.slice(3), // 移除前缀 Nutfrom: '@nutui/nutui',};}},],
});
5)配置关键字说明
  • imports 指定要自动导入的模块或库,支持内置模块(如 vue)和自定义模块。
  • dts 生成的类型声明文件路径(用于 TypeScript 或 IDE 智能提示)。
  • dirs 自动导入指定目录下的模块(如 src/composables)。
  • eslintrc 生成 ESLint 配置文件(解决 ESLint 报错)。
  • vueTemplate 是否支持在 Vue 模板中自动导入(默认 false)。
6)在项目中使用

无需手动import,直接使用即可。

<template><div>{{ count }}</div><button @click="increment">+1</button>
</template><script setup>
// 无需手动导入 ref 和 computed
const count = ref(0);
const double = computed(() => count.value * 2);function increment() {count.value++;
}
</script>

【注意】
TypeScript 支持:确保 tsconfig.json 包含生成的类型声明文件:

  • “include”: [“src/auto-imports.d.ts”]

二、 自动导入vue中的hook、ref等

1. 安装插件

npm install unplugin-vue-components --save-dev
# 或
yarn add unplugin-vue-components -D

在这里插入图片描述

2. 配置 Vite(vite.config.ts 或 vite.config.js)

同样滴,这边用的vue,所以就是在 vite.config.ts 中配置咯

1)基础配置
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import Components from 'unplugin-vue-components/vite';export default defineConfig({plugins: [vue(),Components({// 组件默认存放位置dirs: ['src/components'],// 生成自动导入的类型声明文件dts: 'src/components.d.ts',}),],
});
2)与 UI 组件库集成(示例:NutUI、Element Plus)
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import Components from 'unplugin-vue-components/vite';
import { NutuiResolver, ElementPlusResolver } from 'unplugin-vue-components/resolvers';export default defineConfig({plugins: [vue(),Components({// 配置解析器resolvers: [NutuiResolver(), // 自动导入 NutUI 组件ElementPlusResolver(), // 自动导入 Element Plus 组件],dts: 'src/components.d.ts',}),],
});
3)配置关键字说明
  • dirs 自动扫描的组件目录(默认 ['src/components'])。
  • extensions 组件文件扩展名(默认 ['vue'])。
  • include 匹配文件的 glob 模式(默认 [**/*.vue])。
  • exclude 排除文件的 glob 模式。
  • resolvers 配置组件库解析器(如 NutUI、Element Plus 等)。
  • dts 生成的类型声明文件路径(用于 TypeScript 或 IDE 智能提示)。
  • types 自定义组件类型(如 { from: 'vue-router', names: ['RouterLink'] })。
4)在项目中的使用
<template><!-- 无需手动导入 Button 组件 --><NutButton type="primary">按钮</NutButton><ElButton type="success">Element Button</ElButton><!-- 本地组件也会自动导入 --><MyComponent />
</template>
5)自动导入组件、api混合使用

仅供参考哈,自己装自己需要的依赖和写自己需要的配置哦。

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 { NutuiResolver } from 'unplugin-vue-components/resolvers';export default defineConfig({plugins: [vue(),AutoImport({imports: ['vue', 'vue-router'],dts: 'src/auto-imports.d.ts',}),Components({resolvers: [NutuiResolver()],dts: 'src/components.d.ts',}),],
});

【注意】
TypeScript 支持:确保 tsconfig.json 包含生成的类型声明文件:

  • “include”: [“src/components.d.ts”]

三、 配置@别名

1. 安装依赖

npm install @types/node --save-dev # 提供 path 模块类型支持yarn add @types/node --dev

在这里插入图片描述

2. 配置 Vite(vite.config.ts 或 vite.config.js)

再次同样滴,这边用的vue,所以就是在 vite.config.ts 中配置咯

1)基础配置
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path'; // 引入 path 模块export default defineConfig({resolve: {alias: {'@': path.resolve(__dirname, './src'), // 将 @ 指向 src 目录},},plugins: [vue()],
});
2)配置 TypeScript 支持(如果使用 TypeScript)

修改 tsconfig.json

{"compilerOptions": {"baseUrl": ".","paths": {"@/*": ["src/*"] // 让 TypeScript 识别 @ 别名}}
}

3. 配置 Vue CLI 项目配置

1)修改 vue.config.ts
const path = require('path');module.exports = {chainWebpack: (config) => {config.resolve.alias.set('@', path.resolve(__dirname, 'src'));},
};
2)配置 TypeScript 支持(如果使用 TypeScript)

修改 tsconfig.json

{"compilerOptions": {"baseUrl": ".","paths": {"@/*": ["src/*"]}}
}

四、 打包配置

这是我的配置哈,更多请站内查询一下~

build: {target: 'es2015',outDir: './dist', //指定输出路径assetsDir: 'assets', // 指定生成静态资源的存放路径minify: 'terser', // 混淆器,terser构建后文件体积更小terserOptions: {compress: {drop_console: true, // 生产环境去除consoledrop_debugger: true, // 生产环境去除debugger},},},

五、 代理配置

这是我的配置哈,更多请站内查询一下~

server: {hmr: true, // 开启热更新open: false, // 在服务器启动时自动在浏览器中打开应用程序// 本地开发环境通过代理实现跨域,生产环境使用 nginx 转发proxy: {'/api': {// target 是你的后端 API 服务器的地址  target: '',// changeOrigin 设置为 true,表示在发送请求时会自动改变原始主机头为目标 URL  changeOrigin: true,ws: true,  // 允许websocket代理 },},},}

后续会放个代码包,开箱即食的那种。还会做一些可服用的组件,关注不迷路。

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

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

相关文章

思科(Cisco ASA/Firepower)、华三(H3C)、华为(Huawei USG)防火墙 的基础配置

以下是针对 思科&#xff08;Cisco ASA/Firepower&#xff09;、华三&#xff08;H3C&#xff09;、华为&#xff08;Huawei USG&#xff09;防火墙 的基础配置指南&#xff0c;涵盖 区域划分、安全策略、NAT、路由 等核心功能。配置示例基于通用场景&#xff0c;实际部署时需根…

mac latex vscode 配置

mac latex vscode 配置 安装mactex.pkg 这里有个快速下载的镜像 https://mirrors.aliyun.com/CTAN/systems/mac/mactex/ 可以检查是否将 PATH 写入 export PATH"/Library/TeX/texbin:$PATH"vscode 下载插件 Latex Workshop 在配置文件 settings.json 中输入如下的…

AI日报 · 2025年5月14日|Android 生态大型更新与多端 Gemini 集成

1、Google “Android Show: I/O Edition” 汇总&#xff1a;设计、安全、Gemini 三线并进 北京时间 5 月 14 日凌晨&#xff08;原文标注 5 月 13 日 PDT&#xff09;&#xff0c;Google 在 I/O 前夕举办的 Android Show 一口气公布四大方向更新&#xff1a;① Mater…

MySQL入门指南:环境搭建与服务管理全流程

引言 各位开发者朋友们好&#xff01;今天我们将开启MySQL的学习之旅 &#x1f31f; 作为世界上最流行的开源关系型数据库&#xff0c;MySQL在Web应用、企业系统等领域占据着举足轻重的地位。无论你是刚入行的新手&#xff0c;还是想系统复习的老鸟&#xff0c;这篇教程都将为…

LLM 论文精读(四)LLM Post-Training: A Deep Dive into Reasoning Large Language Models

这是一篇2025年发表在arxiv中的LLM领域论文&#xff0c;是一篇非常全面的综述类论文&#xff0c;介绍了当前主流的强化学习方法在LLM上的应用&#xff0c;文章内容比较长&#xff0c;但建议LLM方面的从业人员反复认真阅读。 写在最前面 为了方便你的阅读&#xff0c;以下几点的…

从规则驱动到深度学习:自然语言生成的进化之路

自然语言生成技术正经历着人类文明史上最剧烈的认知革命。这项起源于图灵测试的技术&#xff0c;已经从简单的符号操作演变为具备语义理解能力的智能系统。当我们回溯其发展历程&#xff0c;看到的不仅是算法模型的迭代更新&#xff0c;更是一部人类认知自我突破的史诗。这场革…

如何实现Flask应用程序的安全性

在 Flask 应用中,确保安全性非常关键,尤其是当你将应用部署到公网环境中时。Flask 本身虽然轻量,但通过组合安全策略、扩展库和最佳实践,可以构建一个非常安全的 Web 应用。 一、常见 Flask 安全风险(必须防护) 安全问题 简要说明 CSRF(跨站请求伪造) 恶意网站诱导用户…

Chrome安装最新vue-devtool插件

本vue-devtool版本是官方的 v7.6.8版本&#xff0c;兼容性好、功能齐全且稳定。 操作步骤&#xff1a; 方法一&#xff1a; 打开谷歌浏览器 --> 右上角三个点 --> 扩展程序 --> 管理扩展程序 --> 加载已解压的扩展程序&#xff0c; 然后选择解压后的文件夹即可。…

【redis】jedis客户端的使用

Jedis是Redis官方推荐的Java客户端库&#xff0c;提供了对Redis数据库的全面支持&#xff0c;适用于单机、哨兵及集群模式。作为最老牌的Java Redis客户端&#xff0c;其API设计直观&#xff0c;与Redis命令高度对应&#xff0c;例如set、get等方法与原生命令一致&#xff0c;降…

Spark处理过程-转换算子

大家前面的课程&#xff0c;我们学习了Spark RDD的基础知识&#xff0c;知道了如何去创建RDD&#xff0c;那spark中具体有哪些rdd&#xff0c;它们有什么特点呢&#xff1f; 我们这节课来学习。 &#xff08;一&#xff09;RDD的处理过程 Spark使用Scala语言实现了RDD的API,程…

【Linux】多路转接epoll、Linux高并发I/O多路复用

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 上篇文章&#xff1a;五种IO模型与阻塞IO以及多路转接select机制编写echoserver 下篇文章…

【三维重建】三维场景生成:综述

标题&#xff1a;《3D Scene Generation: A Survey》 来源&#xff1a;新加坡南洋理工大学 项目&#xff1a;https://github.com/hzxie/Awesome-3D-Scene-Generation 文章目录 摘要一、前言二、准备工作2.1 任务定义2.2 三维场景表示2.3 生成模型 三、方法&#xff1a;分层分类…

前端~三维地图(cesium)动态材质飞线

自定义飞线材质 FlyLineMaterial.ts import * as Cesium from "cesium";// 修改&#xff1a;新增流动区域颜色和速率参数 const FlyLineShaderSource uniform vec4 color; uniform vec4 flowColor; uniform float percent; uniform float speed;czm_material czm…

[Spring AOP 8] Spring AOP 源码全流程总结

Spring AOP总结 更美观清晰的版本在&#xff1a;Github 前面的章节&#xff1a; [Spring AOP 1] 从零开始的JDK动态代理 [Spring AOP 2] 从零开始的CGLIB动态代理 [Spring AOP 3] Spring选择代理 [Spring AOP 4] Spring AOP 切点匹配 [Spring AOP 5] 高级切面与低级切面&#…

C#高级编程:加密解密

在数字化时代,数据安全是每个应用程序都必须重视的环节。无论是用户的个人信息、敏感的商业数据,还是重要的系统配置,都需要得到妥善的保护。C# 作为一种广泛应用的编程语言,提供了丰富且强大的加密解密功能,帮助开发者构建安全可靠的应用。本文将深入探讨 C# 高级编程中的…

基于运动补偿的前景检测算法

这段代码实现了基于运动补偿的前景检测算法。 主要功能包括&#xff1a; 运动补偿模块&#xff1a;使用基于网格的 KLT 特征跟踪算法计算两帧之间的运动&#xff0c;然后通过单应性变换实现帧间运动补偿。前景检测模块&#xff1a;结合两帧运动补偿结果&#xff0c;通过帧间差…

使用matlab进行数据拟合

目录 一、工作区建立数据 二、曲线拟合器(在"APP"中) 三、曲线拟合函数及参数 四、 在matlab中编写代码 一、工作区建立数据 首先&#xff0c;将数据在matlab工作区中生成。如图1所示&#xff1a; 图 1 二、曲线拟合器(在"APP"中) 然后&#xff0c;…

Playwright 安装配置文件详解

Playwright 安装&配置文件详解 环境准备 Node.js 14.0&#xff08;推荐 LTS 版本&#xff09;npm&#xff08;推荐使用最新版&#xff09;支持 Windows、macOS、Linux 一步到位的官方推荐安装方式 1. 进入你的项目目录 # Windows cd 路径\到\你的项目 # macOS/Linux cd…

中国古代史4

东汉 公元25年&#xff0c;刘秀建立东汉&#xff0c;定都洛阳&#xff0c;史称光武中兴 白马寺&#xff1a;汉明帝时期建立&#xff0c;是佛教传入中国后兴建的第一座官办寺院&#xff0c;有中国佛教的“祖庭”和“释源”之称&#xff0c;距今1900多年历史 班超—西域都护—投…

springboot + mysql8降低版本到 mysql5.7

springboot mysql8降低版本到 mysql5.7 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency>spring:datasource:driverClassName: com.mysql.jdbc.D…