【React框架】什么是 Vite?如何使用vite自動生成react的目錄?


什么是 Vite?

Vite 是一個基于原生 ES Modules 開發的前端構建工具,由 Evan You(Vue 的作者)開發。它最大的特點包括:

  • 極速冷啟動:因為利用了瀏覽器原生的 ES Modules,所以在開發時無需等待整個打包過程。
  • 高效熱更新(HMR):文件變更后只更新改動部分,極大提升開發效率。
  • 簡單配置:大部分項目即開箱即用,同時也支持靈活的配置和插件擴展。

使用 Vite 創建 React 項目

1. 確保環境準備

  • 安裝 Node.js(建議使用 LTS 版本)。
  • 終端支持 npmyarnpnpm 之一。

2. 創建項目

在終端中執行以下命令即可通過 Vite 腳手架創建一個 React 項目模板:

  • 使用 npm:

    npm create vite@latest my-react-app -- --template react
    
  • 使用 yarn:

    yarn create vite my-react-app --template react
    
  • 使用 pnpm:

    pnpm create vite my-react-app --template react
    

上述命令會自動下載 Vite 模板,并生成一個名為 my-react-app 的項目目錄。

3. 安裝依賴

進入項目目錄并安裝依賴包:

cd my-react-app
npm install
# 或 yarn install / pnpm install

Vite 創建的 React 項目目錄結構

創建完成后,項目的默認目錄結構大致如下:

my-react-app/
├── node_modules/             # 依賴庫
├── public/                   # 公共靜態資源(直接被瀏覽器訪問)
│   ├── favicon.svg           # 圖標等資源文件
│   └── vite.svg              # 示例圖片
├── src/                      # 源代碼目錄
│   ├── App.jsx               # 根組件,主要的應用邏輯
│   ├── main.jsx              # 應用入口文件,負責掛載 React 組件到 DOM
│   ├── index.css             # 全局樣式文件
│   └── vite-env.d.ts         # Vite 默認提供的 TypeScript 類型聲明(如果你使用 TypeScript,則包含在內)
├── .gitignore                # Git 忽略文件
├── index.html                # HTML 模板,Vite 會注入相關腳本和樣式
├── package.json              # 項目配置以及依賴聲明
├── README.md                 # 項目說明文檔
└── vite.config.js            # Vite 配置文件,可在其中自定義構建、插件、服務器等配置

說明:

  • public/
    放置靜態資源,如圖片、圖標、manifest 等,Vite 不會對里面的資源做預處理,瀏覽器直接訪問。

  • src/
    主要源碼存放處。main.jsx 作為入口文件,通過 ReactDOM.render()(或 React 18 的 createRoot)把 App.jsx 組件掛載到 index.html 中的 DOM 節點上。

  • index.html
    作為模板文件,Vite 將在構建時注入打包后的腳本和樣式,你可以在此處添加 meta 標簽、鏈接外部資源等。

  • vite.config.js
    配置文件用來定制 Vite 的行為,如插件配置、路徑別名、開發服務器設置等。例如,可以配置插件 @vitejs/plugin-react 來增強 React 開發體驗。


Vite 常用命令

在項目目錄下,可以通過 package.json 中定義的腳本來運行常用命令:

  1. 啟動開發服務器

    npm run dev
    

    這會啟動一個本地開發服務器(默認端口 3000 或其他可用端口),支持實時熱更新(HMR),在你修改代碼后頁面會自動更新。

  2. 構建生產版本

    npm run build
    

    該命令會把項目打包到 dist/ 目錄下,使用 Rollup 進行構建和優化,生成用于部署的靜態文件。

  3. 預覽生產構建

    npm run preview
    

    在構建生產版本后,可通過該命令在本地啟動一個模擬生產環境的服務器,方便你預覽生產構建效果。


Vite 的自定義配置

vite.config.js 文件中,你可以進行各種自定義配置。例如:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';export default defineConfig({plugins: [react()],resolve: {alias: {'@': '/src', // 使用 @ 表示 src 目錄},},server: {port: 3000,open: true, // 啟動后自動打開瀏覽器},
});

常用配置包括:

  • 插件配置:通過插件擴展 Vite 的功能,如支持 React 的 Fast Refresh、TypeScript、PWA 等。
  • 路徑別名:配置簡化模塊導入路徑,提升可讀性。
  • 開發服務器設置:如端口號、代理設置、自動打開瀏覽器等。
  • 構建選項:定制生產構建參數,如輸出目錄、代碼分割、壓縮等。

環境變量

Vite 支持基于 .env 文件的環境變量設置,需要注意的是環境變量名必須以 VITE_ 開頭才能在客戶端代碼中訪問。例如,在項目根目錄下創建一個 .env 文件:

VITE_API_URL=https://api.example.com

然后在代碼中通過 import.meta.env.VITE_API_URL 獲取對應的值。


總結

  • 快速創建: 使用 Vite 腳手架可以非常便捷地搭建一個 React 項目。
  • 目錄結構清晰: public/src/ 目錄的劃分讓靜態資源與源碼分離。
  • 高效開發: Vite 利用 ES Modules 實現極速啟動和熱更新,大大提升開發體驗。
  • 靈活配置: 通過 vite.config.js 和插件系統,你可以根據項目需求自定義各種構建和運行選項。

你可以查閱 Vite 官方文檔 獲取更多使用細節和高級配置內容。這樣你就能根據項目需求靈活配置和擴展了。

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

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

相關文章

深入解讀 React 純組件(PureComponent)

什么是純組件? React 的純組件(PureComponent)是 React.Component 的一個變體,它通過淺比較(shallow comparison)props 和 state 來自動實現 shouldComponentUpdate() 方法,從而優化性能。 核心特點 1. 自動淺比較: PureCompon…

JavaScript數組方法:`some()`的全面解析與應用

文章目錄 JavaScript數組方法:some()的全面解析與應用一、some()方法的基本概念語法參數說明返回值 二、some()方法的核心特點三、基礎用法示例示例1:檢查數組中是否有大于10的元素示例2:檢查字符串數組中是否包含特定子串 四、實際應用場景1…

判斷兩個 IP 地址是否在同一子網 C

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> // 將點分十進制的 IP 地址轉換為 32 位無符號整數 unsigned int ip_to_uint(const char *ip) { struct in_addr addr; if (inet_pton(AF_INET, ip, &am…

React 組件樣式

在這里插入圖片描述 分為行內和css文件控制 行內 通過CSS中類名文件控制

尚硅谷Java第 4、5 章IDEA,數組

第 4 章&#xff1a;IDEA的使用 第 5 章&#xff1a;數組 5.1 數組的概述 數組(Array)&#xff1a;就可以理解為多個數據的組合。 程序中的容器&#xff1a;數組、集合框架&#xff08;List、Set、Map&#xff09;。 數組中的概念&#xff1a; 數組名 下標&#xff08;或索…

SQL注入基本原理靶場實現

? 一、前言 SQL注入漏洞(SQL injection)是WEB層面高危的漏洞之一&#xff0c;也是常見的攻擊方式。 二、本質 1、什么是SQL注入 SQL 注入是一種利用應用程序對用戶輸入數據過濾不嚴格&#xff0c;將惡意 SQL 代碼插入到正常 SQL 語句中&#xff0c;從而操控數據庫查詢邏輯的…

圖像預處理(OpenCV)

1 圖像翻轉(圖像鏡像旋轉) 在OpenCV中&#xff0c;圖片的鏡像旋轉是以圖像的中心為原點進行鏡像翻轉的。 cv2.flip(img,flipcode) 參數 img: 要翻轉的圖像 flipcode: 指定翻轉類型的標志 flipcode0: 垂直翻轉&#xff0c;圖片像素點沿x軸翻轉 flipcode>0: 水平翻轉&…

PCDN收益高低的關鍵因素

PCDN&#xff08;P2P內容分發網絡&#xff09;收益好的三個主要關鍵因素是&#xff1a;硬件配置與性能、網絡環境與質量、業務調度與策略。 1. 硬件配置與性能 設備穩定性與兼容性 PCDN節點需長時間穩定運行&#xff0c;硬件性能直接影響收益。例如&#xff0c;使用高性能CPU、…

『生成內容溯源系統』詳解

生成內容溯源系統詳解 1. 定義與核心目標 生成內容溯源系統&#xff08;Generative Content Provenance System&#xff09;是指能夠追蹤AI生成內容的來源、生成過程、版權歸屬及修改歷史的技術體系。其核心目標是&#xff1a; 驗證真實性&#xff1a;證明內容由特定AI模型生…

conda如何安裝和運行jupyter

在Conda環境中安裝和運行Jupyter Notebook是一項常見且實用的任務&#xff0c;特別是在數據科學和機器學習項目中。以下是使用Conda安裝和運行Jupyter Notebook的步驟&#xff1a; 安裝Jupyter Notebook 首先&#xff0c;確保你的Conda是最新的。打開終端或Anaconda Prompt&a…

QML之Flickable(滾動區域)

Flickable 是 QML 中用于創建可滾動區域的基礎組件&#xff0c;它比 ScrollView 提供更底層的控制&#xff0c;適合需要自定義滾動行為的場景。 基本用法 qml import QtQuick 2.15Flickable {width: 200height: 200contentWidth: 400 // 內容總寬度contentHeight: 800 // 內…

【NumPy科學計算引擎:從基礎操作到高性能實踐】

目錄 前言&#xff1a;技術背景與價值當前技術痛點解決方案概述目標讀者說明 一、技術原理剖析關鍵技術模塊說明技術選型對比 二、實戰演示環境配置核心代碼實現運行結果驗證 三、性能對比測試方法論量化數據對比結果分析 四、最佳實踐推薦方案 ?常見錯誤 ?調試技巧 五、應用…

PandaGPT實戰(1): 環境配置及效果演示

文章目錄 1. 環境安裝2. 數據準備2.1 模型權重獲取2.2 訓練數據準備3. 效果演示3.1 訓練3.2 部署效果PandaGPT是首個無需顯式監督即能跨六種模態執行指令微調任務的基礎模型。它展現出多樣化的多模態能力,包括復雜理解/推理、基于知識的描述以及多輪對話交互。 作為通用型指令…

spring security oauth2.0 使用GitHub

在 Spring Security 中集成 GitHub 的 OAuth 2.0 登錄&#xff0c;可以實現用戶通過 GitHub 賬號快速認證。以下是完整的分步實現指南和代碼示例&#xff1a; 一、前置準備 1. 在 GitHub 注冊 OAuth 應用 訪問 GitHub Settings → Developer settings → OAuth Apps點擊 New …

QT聊天項目DAY01

1.新建初始項目 2.修改UI格式 運行效果 3.創建登錄界面 設計登錄界面UI 設計布局 調整布局間距 往水平布局中拖入標簽和文本輸入框 更換控件名稱并固定高度 添加窗口部件 往現有的資源文件中導入圖片 添加水平布局 4.設置登陸界面為主窗口的核心組件 #pragma once#include &l…

檢測到目標URL存在http host頭攻擊漏洞

漏洞描述 修復措施 方法一&#xff1a; nginx 的 default_server 指令可以定義默認的 server 去處理一些沒有匹配到 server_name 的請求&#xff0c;如果沒有顯式定義&#xff0c;則會選取第一個定義的 server 作為 default_server。 server { …

小甲魚第004講:變量和字符串(下)| 課后測試題及答案

問答題: 0. 請問下面代碼有沒有毛病&#xff0c;為什么? 請問下面代碼為什么會出錯&#xff0c;應該如何解決&#xff1f; 答:這是由于在字符串中&#xff0c;反斜杠()會與其隨后的字符共同構成轉義字符。 為了避免這種不測情況的發生&#xff0c;我們可以在字符串的引號前面…

Hyprnote開源程序是一款記錄和轉錄您會議的 AI 記事本。 本地優先且可擴展 。

一、軟件介紹 文末提供源碼下載學習 Hyprnote開源程序是一款記錄和轉錄您會議的 AI 記事本。 從您的原始會議記錄中生成強大的摘要&#xff0c;本地優先且可擴展 。使用開源模型 &#xff08;Whisper & Llama&#xff09; 離線工作&#xff0c;高度可擴展 &#xff0c;由插…

FreeRTOS使任務處于阻塞態的API

在FreeRTOS中&#xff0c;任務進入阻塞狀態通常是因為等待某個事件或資源。以下是常用的使任務進入阻塞態的API及其分類&#xff1a; 1. 任務延時 vTaskDelay(pdMS_TO_TICKS(ms)) 將任務阻塞固定時間&#xff08;相對延時&#xff0c;從調用時開始計算&#xff09;。 示例&…

各種“排序”的方法

文章目錄 插入排序1. 直接插入排序(O(n^2))舉例1&#xff1a;舉例2&#xff1a;直插排序的"代碼"直插排序的“時間復雜度” 2. 希爾排序(O(n^1.3))方法一方法二(時間復雜度更優) 選擇排序堆排序直接選擇排序 我們學過冒泡排序&#xff0c;堆排序等等。&#xff08;回…