程式狂想筆記

一個攻城師奮鬥史

0%

使用 Vite 初體驗

我很久沒寫Vue
都忘記差不多
最近想寫一個小東西
有聽過一場Vite研討會
覺得很方便,就來使用看看

vite2: Make Web Dev Fast Again & Again. – Dropbox Paper

裡面dev proxy,還滿方便的
但不能做CROS 方法
這邊想成npm run dev 時候,進去 /api/ 時候會倒 proxy server
測試時候很方便

除了上面教學

這邊還滿多 Vite 文章
标签:vite - Fidel Yiu | 前端技术博客

Vite PWA
第六十章-Vite插件-vite-plugin-pwa - Fidel Yiu | 前端技术博客

但我後來源參照這篇

官方設定好像不是這樣(不知道是不是舊版的文)
設定非常簡單

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { VitePWA } from 'vite-plugin-pwa'

// https://vitejs.dev/config/
export default defineConfig({

server: {
proxy: {
'/api': {
target: 'http://localhost:8080/api',
// changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '')
}
}
},
plugins: [vue(),VitePWA({
registerType: 'autoUpdate',
manifest: {
"name": "XXXX",
"short_name": "XXXX",
"start_url": ".",
"display": "standalone",
"background_color": "#fff",
"description": "XXXX",
"icons": [ {
"src": "images/android-launchericon-48-48.png",
"sizes": "48x48",
"type": "image/png"
},{
"src": "images/android-launchericon-72-72.png",
"sizes": "72x72",
"type": "image/png"
},{
"src": "images/android-launchericon-144-144.png",
"sizes": "144x144",
"type": "image/png"
},{
"src": "images/android-launchericon-192-192.png",
"sizes": "192x192",
"type": "image/png"
},{
"src": "images/android-launchericon-512-512.png",
"sizes": "512x512",
"type": "image/png"
}]
},
workbox: {
// workbox options for generateSW
}
})]
})

Vite 使用環境變數

設定 Vite 環境變數需要注意幾個事情

  1. .env 可以使用 Vite 環境變數
    這邊提下小重點

    .env # 所有情況下都會加載
    .env.local # 所有情況下都會加載,但會被 git 忽略
    .env.[mode] # 只在指定模式下加載
    .env.[mode].local # 只在指定模式下加載,但會被 git 忽略

    這邊.env.local會被 git 忽略,後來發現是 .local 都會被 git 忽略。
    至於為什麼能被 git 忽略?因為建立 Vite 時候就已經被被在 .gitignore我還以為 git 就有這個預設差點高潮

  2. .env 環境變數需要用 VITE_開頭

    1
    2
    DB_PASSWORD=foobar
    VITE_SOME_KEY=123

使用變數也是很簡單,用 import.meta.env.* 就可以抓出環境變數
仔細一看,這個一般 js 也能使用

1
vite build --mode staging

假如 vite 沒用在全域變數時候,可以用npm run build -- --mode test,這樣就不用在package.json做修改調整
參考: 如何向npm腳本發送命令行參數? - 問答 - 雲+社區 - 騰訊雲

這邊假如有指定 mode 時候,我這邊有做實驗,環境套用順序是這樣 .env->.env.local->.env.test

其他使用方式