【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.pswp.cn/news/905546.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905546.shtml
英文地址,請注明出處:http://en.pswp.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…