使用 Vite 提升前端開發體驗:入門與配置指南

在現代前端開發中,構建工具的選擇對開發效率和項目性能有著至關重要的影響。Vite 是一個新興的前端構建工具,由 Vue.js 的作者尤雨溪開發,旨在通過利用現代瀏覽器的原生 ES 模塊特性,提供更快的開發服務器啟動速度和更高效的熱更新機制。本文將介紹 Vite 的基本概念、使用方法以及常見配置,幫助你快速上手并充分發揮其優勢。

什么是 Vite?

Vite 是一個現代化的前端構建工具,專注于提升開發體驗和構建效率。它的核心特點包括:

  1. 快速啟動
    Vite 利用原生 ES 模塊,避免了傳統打包工具在開發階段需要打包整個項目的瓶頸,從而實現毫秒級的冷啟動。

  2. 按需編譯
    只有在瀏覽器請求時,Vite 才會編譯當前需要的文件,而不是一次性編譯整個項目,這大大減少了等待時間。

  3. 高效熱更新
    Vite 通過 ES 模塊實現了快速的熱模塊替換(HMR),開發者可以在保存代碼后立即看到更新效果,無需刷新頁面。

  4. 開箱即用
    Vite 內置了對 TypeScript、JSX、CSS 預處理器等的支持,減少了繁瑣的配置工作。

  5. 多框架支持
    雖然 Vite 由 Vue.js 團隊開發,但它同樣支持 React、Preact、Svelte 等主流前端框架。

  6. 生產優化
    在生產環境中,Vite 使用 Rollup 進行構建,生成高效的靜態資源。

如何使用 Vite?

1. 創建項目

使用 Vite 創建新項目非常簡單。可以通過以下命令快速初始化一個項目:

# 使用 npm
npm create vite@latest# 使用 yarn
yarn create vite# 使用 pnpm
pnpm create vite

?按照提示輸入項目名稱并選擇模板(如 Vue、React、Vanilla 等)。

2. 啟動開發服務器

進入項目目錄并啟動開發服務器:

# 進入項目目錄
cd my-vite-project# 安裝依賴
npm install# 啟動開發服務器
npm run dev

?啟動后,Vite 會提供一個本地開發服務器地址(通常是?http://localhost:5173),你可以在瀏覽器中訪問該地址查看項目。

3. 構建生產環境代碼

開發完成后,使用以下命令構建生產環境代碼:

npm run build

?構建結果會輸出到?dist?目錄。

4. 預覽生產環境構建

可以使用以下命令預覽生產環境構建結果:

npm run preview

如何配置 Vite?

Vite 的配置文件是?vite.config.js(或?vite.config.ts),位于項目根目錄。以下是一些常見的配置示例:

1. 基本配置

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'; // 如果使用 Vueexport default defineConfig({plugins: [vue()], // 使用的插件server: {port: 3000, // 開發服務器端口open: true, // 自動打開瀏覽器},build: {outDir: 'dist', // 構建輸出目錄assetsDir: 'assets', // 靜態資源目錄},
});

2. 配置別名(Alias)

為了方便引入模塊,可以配置路徑別名:

import { defineConfig } from 'vite';
import path from 'path';export default defineConfig({resolve: {alias: {'@': path.resolve(__dirname, './src'), // 將 @ 指向 src 目錄},},
});

在代碼中使用:

import MyComponent from '@/components/MyComponent.vue';

3. 配置環境變量

Vite 使用?.env?文件來管理環境變量:

  • .env:默認環境變量

  • .env.development:開發環境變量

  • .env.production:生產環境變量

在?.env?文件中定義變量:

VITE_API_URL=https://api.example.com

在代碼中訪問:

const apiUrl = import.meta.env.VITE_API_URL;

4. 配置代理(Proxy)

解決開發環境下的跨域問題:

export default defineConfig({server: {proxy: {'/api': {target: 'http://localhost:3000', // 目標服務器changeOrigin: true,rewrite: (path) => path.replace(/^\/api/, ''), // 重寫路徑},},},
});

5. 使用插件

Vite 支持豐富的插件,例如:

  • @vitejs/plugin-vue:支持 Vue 單文件組件。

  • @vitejs/plugin-react:支持 React。

  • vite-plugin-svg-icons:處理 SVG 圖標。

安裝插件后,在?vite.config.js?中配置:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import svgLoader from 'vite-plugin-svg-icons';export default defineConfig({plugins: [vue(), svgLoader()],
});

6. 配置 CSS 預處理器

Vite 內置支持 CSS 預處理器(如 Sass、Less),只需安裝對應的依賴:

npm install sass

然后在代碼中直接使用:

// style.scss
$primary-color: red;body {color: $primary-color;
}

7. 自定義構建選項

可以配置構建的細節,例如代碼拆分、壓縮等:

export default defineConfig({build: {minify: 'terser', // 代碼壓縮工具rollupOptions: {output: {manualChunks: {lodash: ['lodash'], // 將 lodash 拆分為單獨的文件},},},},
});

總結

Vite 是一個功能強大且靈活的前端構建工具,通過利用現代瀏覽器的特性和高效的構建機制,顯著提升了開發體驗和構建速度。無論是快速原型開發還是大型項目構建,Vite 都能滿足你的需求。通過本文的介紹,你應該已經掌握了 Vite 的基本使用方法和常見配置技巧。現在,就嘗試在你的下一個項目中使用 Vite 吧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/75723.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/75723.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/75723.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MYSQL基本語法使用

目錄 一、mysql之DML 增加語句 刪除語句和truncate 更新語句 replace語句 select查詢語句 二、select多種用法 查詢時的別名使用 分組 分組后的篩選 結果排序 分頁功能 分表 多表關聯查詢 練習題 一、單表查詢 二、多表查詢 前面已經學習了mysql的安裝和基本語…

自動化測試selenium(Java版)

1.準備工作 1.1.下載瀏覽器 自動化測試首先我們要準備一個瀏覽器,我們這里使用谷歌(chrome)瀏覽器. 1.2.安裝驅動管理 每一個瀏覽器都是靠瀏覽器驅動程序來啟動,但是瀏覽器的版本更新非常快,可能我們今天測試的是一個版本,第二天發布了一個新的版本,那么我們就要重構代碼,很…

HarmonyOS Next應用架構設計與模塊化開發詳解

引言 在HarmonyOS Next開發中,合理的應用架構設計和模塊化開發是構建高效、可維護應用的關鍵。本文將深入探討HarmonyOS Next應用的架構設計思路,并通過實際代碼示例展示如何實現模塊化開發。 應用架構設計 HarmonyOS Next應用通常采用分層架構設計&…

伊利工業旅游4.0,近距離感受高品質的魅力

3月24日,在2025年第112屆全國糖酒會(簡稱春糖)前夕,伊利集團“可感知高品質探尋薈”活動在成都召開,記者走進伊利在西南地區最大的乳制品生產基地—邛崍工廠,零距離見證液態奶、酸奶、冷飲等乳制品的誕生&a…

測試用例生成平臺通過大模型升級查詢功能,生成智能測試用例

在測試工作中,查詢功能是各類系統的核心模塊,傳統的測試用例編寫往往耗時且重復。如何讓老舊平臺煥發新活力?本文將結合大模型技術,通過用戶輸入的字段信息,自動化生成高效、精準的測試用例。同時,我們還將…

基于javaweb的SpringBoot雪具商城系統設計與實現(源碼+文檔+部署講解)

技術范圍:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

【AI學習筆記】Coze平臺實現將Excel文檔批量導入數據庫全過程

背景前搖&原視頻教程: 最近看到很多同學都在用Coze平臺操作數據,我也想了解一下工作流的搭建和數據處理過程,但是一下子又看不懂太復雜的邏輯,于是上B站搜索相關的基礎教程。 Coze官方教程: 之前有看過Coze平臺…

【Axure高保真原型】縱向圖片輪播

今天和大家分享縱向圖片輪播的原型模版,載入后會自動循環輪播,鼠標移入圖片后停止輪播,可以通過點擊上下箭頭,向上或向下滑動切換上一張或下一張圖片,也可以點擊右側小圓點快速切換至對應圖片……具體效果可以打開下方…

力扣32.最長有效括號(棧)

32. 最長有效括號 - 力扣&#xff08;LeetCode&#xff09; 代碼區&#xff1a; #include<stack> #include<string> /*最長有效*/ class Solution { public:int longestValidParentheses(string s) {stack<int> st;int ans0;int ns.length();st.push(-1);fo…

如何在 React 項目中使用React.lazy和Suspense實現組件的懶加載?

大白話如何在 React 項目中使用React.lazy和Suspense實現組件的懶加載&#xff1f; 在 React 項目里&#xff0c;有時候組件功能多、體積大&#xff0c;要是一次性把所有組件都加載進來&#xff0c;網頁加載速度就會變慢。而 React 提供了 React.lazy 和 Suspense 這兩個好東西…

ffmpeg-將多個視頻切片成一個新的視頻

使用 ffmpeg 工具可以輕松完成將多個視頻切片合并為一個新的視頻。以下是實現這一目標的具體步驟和命令。 步驟概覽 1、將多個視頻切片。 2、創建文本文件列出切片的視頻片段。 3、使用 ffmpeg 合并這些切片為一個新的視頻。 一&#xff1a;安裝 ffmpeg 確保你的系統中已經安…

【第2月_day10】Pandas數據查看與選擇

以下是專為小白設計的 Pandas數據查看與選擇 學習內容&#xff0c;從基礎到應用逐步講解&#xff0c;附帶清晰示例和注意事項&#xff1a; 一、數據查看&#xff1a;快速了解你的數據 1. head() 和 tail() 作用&#xff1a;查看數據的前幾行或后幾行&#xff0c;默認顯示5行。…

Jetpack LiveData 使用與原理解析

一、引言 在 Android 開發中&#xff0c;數據的變化需要及時反映到界面上是一個常見的需求。然而&#xff0c;傳統的方式可能會導致代碼復雜、難以維護&#xff0c;并且容易出現內存泄漏等問題。Jetpack 組件中的 LiveData 為我們提供了一種優雅的解決方案&#xff0c;它是一種…

Unity2D 五子棋 + Photon聯網雙人對戰

開發環境配置 Unity版本2022.3 創建Photon賬號以及申請Photon中國區服務 官網申請賬號&#xff1a;Multiplayer Game Development Made Easy Photon Engine 中國區服務&#xff1a; 光子引擎photonengine中文站 成都動聯無限科技有限公司(vibrantlink.com) 導入PUN2插件以及…

(UI自動化測試web端)第二篇:元素定位的方法_css定位之屬性選擇器

看代碼里的【find_element_by_css_selector( )】( )里的表達式怎么寫&#xff1f; 文章介紹了第四種寫法屬性選擇器 &#xff0c;你要根據網頁中的實際情況來判斷自己到底要用哪一種方法來進行元素定位。每種方法都要多練習&#xff0c;全都熟了之后你在工作當中使用起來元素定…

預編譯能否 100%防 sql 注入?

&#x1f31f; 什么是 SQL 注入&#xff1f; SQL 注入&#xff08;SQL Injection&#xff09;是指攻擊者利用特殊輸入&#xff0c;讓數據庫執行它本來不應該執行的代碼&#xff0c;從而獲取或篡改數據。 就像在考試的時候偷偷改題目&#xff0c;讓老師改成你想要的內容&#…

第十五章 | Layer2、Rollup 與 ZK 技術實戰解析

&#x1f4da; 第十五章 | Layer2、Rollup 與 ZK 技術實戰解析 ——構建下一代高性能區塊鏈應用&#xff0c;從 Solidity 到 zkSync&#xff01; ? 本章導讀 Layer2 和零知識證明&#xff08;ZK&#xff09;正成為區塊鏈發展的核心方向。 隨著主網 Gas 居高不下、TPS 無法滿…

2025-03-26 學習記錄--C/C++-PTA 6-3 求鏈式表的表長

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、題目描述 ?? 6-3 求鏈式表的表長 本題要求實現一個函數&#xff0c;求鏈式表的表長。 函數接口定義&#xff1a; &…

【Linux】Linux_Ubuntu與Windows之間的文件傳輸

一、Linux終端命令的復制粘貼 1.打開linux 終端&#xff0c;輸入以下命令&#xff1a;&#xff08;注意&#xff0c;需要聯網&#xff09; 2.命令行下載&#xff1a; sudo apt-get autoremove open-vm-tools 3.命令行安裝&#xff1a; sudo apt-get install open-vm-tools-…

Python Sanic面試題及參考答案

目錄 Sanic 的事件循環機制與 uvloop 的關系 Sanic 的 Request/Response 對象生命周期如何管理?如何訪問請求上下文? 對比 Sanic 與 Flask/Django 的異步處理模型差異 Sanic 的 Blueprint 機制如何實現模塊化路由?如何處理跨藍圖中間件? 如何在 Sanic 中實現 WebSocket…