[TOC]
# Vite
| 概念????? | 作用???????????????????? | 用法???????????? |
| --------- | ------------------------ |-----------------|
|打包工具?? | 顯著提高開發環境啟動速度? |`npm init vite@latest`|
|模塊熱重載| 修改源代碼后,瀏覽器會熱重載更新|支持HMR|
|按需編譯? |只編譯用到的代碼??????????? |通過 rollup.js 來實現 |?
|優化的開發服務器|更快啟動、更好體驗???????? |Vite 啟動服務器,無需中間 bundle??????? |
|條理清晰的API?? |易于配置和擴展??????????? |rollup.config.js 替代??????????????? |?
|完全類型化?? |增強開發體驗????????????? |TypeScript 支持???????????????? |
## 構建更加復雜的項目
### 1. 多頁面應用支持
:在 vite.config.js 中配置多個入口,可以構建多頁面應用。
```
js
export default {
build: {
rollupOptions: {
input: {
main: resolve(__dirname, 'index.html'),
about: resolve(__dirname, 'about.html')
}
}
}
}
```
### 2. Library 模式
:可以將 Vite 用來構建 library,通過 externals 配置,避免打包第三方依賴。
```
js
export default {
build: {
lib: {
entry: resolve(__dirname, 'src/main.js'),
name: 'MyLib',
fileName: (format) => `my-lib.${format}.js`
},
rollupOptions: {
// 確保外部化處理那些你不想打包進庫的依賴
external: ['vue']
}
}
}
```
### 3. 插件 API
:Vite 提供了插件 API,可以編寫自定義插件。插件可以在開發和構建過程中的不同階段注入自定義邏輯。
```
js
export default function myPlugin() {
const symbol = Symbol('some symbol')
return {
name: 'my-plugin',
config() { /* ... */ },
configResolved(config) { /* ... */ },
handleHotUpdate() { /* ... */ },
transform(code, id) { /* ... */ },
generateBundle() { /* ... */ },
writeBundle() { /* ... */ }
}
}
```
### 4. 環境變量和模式
:可以基于 mode 選項,設置不同的環境變量,在代碼中使用 import.meta.env 來訪問。
```
js
// vite.config.js
export default {
mode: 'development',
define: {
'process.env': {
NODE_ENV: '"development"'
}
}
}
```
```
js
// src/main.js
console.log(import.meta.env.NODE_ENV)
// Prints "development"
```
### 5. 路徑別名
:可以在 vite.config.js 中設置路徑別名,簡化 import 語句。
```
js
export default {
resolve: {
alias: {
'@components': '/src/components'
}
}
}
```
```
js
import MyComponent from '@components/MyComponent.vue'
```
掌握這些高級特性,可以讓我們構建更加復雜和規模化的 Vue 項目。Vite 是 Vue 生態中的前沿工具,值得我們深入學習和實踐。
- 系統設計
- 需求分析
- 概要設計
- 詳細設計
- 邏輯模型設計
- 物理模型設計
- 產品設計
- 數據驅動產品設計
- 首頁
- 邏輯理解
- 微服務架構的關系數據庫優化
- Java基礎架構
- 編程范式
- 面向對象編程【模擬現實】
- 泛型編程【參數化】
- 函數式編程
- 響應式編程【異步流】
- 并發編程【多線程】
- 面向切面編程【代碼復用解耦】
- 聲明式編程【注解和配置】
- 函數響應式編程
- 語法基礎
- 包、接口、類、對象和切面案例代碼
- Springboot按以下步驟面向切面設計程序
- 關鍵詞
- 內部類、匿名類
- 數組、字符串、I/O
- 常用API
- 并發包
- XML
- Maven 包管理
- Pom.xml
- 技術框架
- SpringBoot
- 項目文件目錄
- Vue
- Vue項目文件目錄
- 遠程組件
- 敏捷開發前端應用
- Pinia Store
- Vite
- Composition API
- uniapp
- 本地方法JNI
- 腳本機制
- 編譯器API
- 注釋
- 源碼級注釋
- Javadoc
- 安全
- Swing和圖形化編程
- 國際化
- 精實或精益
- 精實軟件數據庫設計
- 精實的原理與方法
- 項目
- 零售軟件
- 擴展
- 1001_docker 示例
- 1002_Docker 常用命令
- 1003_微服務
- 1004_微服務數據模型范式
- 1005_數據模型
- 1006_springCloud
- AI 流程圖生成
- Wordpress_6
- Woocommerce_7
- WooCommerce常用的API和幫助函數
- WooCommerce的鉤子和過濾器
- REST API
- 數據庫API
- 模板系統
- 數據模型
- 1.Woo主題開發流程
- Filter
- Hook
- 可視編輯區域的函數工具
- 渲染字段函數
- 類庫和框架
- TDD 通過測試來驅動開發
- 編程范式對WordPress開發
- WordPress和WooCommerce的核心代碼類庫組成
- 數據庫修改
- 1.WP主題開發流程與時間規劃
- moho
- Note 1
- 基礎命令