vite.config.ts如何加載.env環(huán)境變量
vite.config.ts加載.env環(huán)境變量
在閱讀vite文檔的時(shí)候,我們知道vite的環(huán)境變量 是在一個(gè)特殊的對象上,默認(rèn)只有前綴為 VITE_ 的環(huán)境變量會(huì)被加載。
Vite 在一個(gè)特殊的 import.meta.env 對象上暴露環(huán)境變量。
vite在讀取config配置的時(shí)候(比如說本地代理proxy的時(shí)候,或者想要在不同環(huán)境做不一樣的配置)想要拿到配置好的環(huán)境變量,無法像vue-cli腳手架那樣直接用process.env.xxx來獲取,也不能直接使用import.meta.env.xxx,需要用到vite提供的一個(gè)方法來讀取環(huán)境變量。
需要使用vite提供的 loadEnv來加載環(huán)境變量:
import { loadEnv } from "vite";修改暴露出去的配置
export default ({ mode }) => {
?? ?const env = loadEnv(mode, process.cwd());
?? ?return defineConfig({
?? ??? ?...
?? ?})
}此時(shí)的env就相當(dāng)于import.meta.env
vite.config.ts基礎(chǔ)配置項(xiàng)記錄
使用vite創(chuàng)建vue3+ts項(xiàng)目時(shí),需要對vite.config.ts(同vue2中vue.config.js)進(jìn)行一些基礎(chǔ)配置
import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue" // 以上兩項(xiàng)生成項(xiàng)目時(shí)默認(rèn)就有,不需要配置
import path from 'path' // 配置文件路徑相關(guān)時(shí),需要用到此項(xiàng) 由于node不支持ts,需要安裝依賴以便支持 需執(zhí)行如下命令 npm install @types/node --save-dev
// https://vitejs.dev/config/
export default defineConfig({
base: process.env.NODE_ENV === 'production' ? './' : '/', //靜態(tài)資源訪問路徑
resolve: {
alias: { // 設(shè)置別名
'@': path.resolve(__dirname, 'src') // 用 @ 符號替換 src 文件路徑
}
},
build: {
outDir: 'dist',
assetsDir: 'assets', // 指定靜態(tài)資源存放路徑
sourcemap: false, // 是否構(gòu)建source map 文件
terserOptions: {
// 生產(chǎn)環(huán)境移除console
compress: {
drop_console: true,
drop_debugger: true
}
}
},
server: {
https: false, // 是否開啟https
port: 8080, // 端口號
open: true, // 配置后,運(yùn)行項(xiàng)目是自動(dòng)啟動(dòng)瀏覽器
proxy: { // 本地代理
'/api': {
target: "", // 后端接口
changeOrigin: true,
secure: false, // 如果是https接口,需要配置這個(gè)參數(shù)
// ws: true, // websocket支持
rewrite: (path) => path.replace(/^\/api/, "")
}
}
},
// 引入第三方的配置
optimizeDeps: {
include: []
},
plugins: [vue()]
})總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3實(shí)現(xiàn)動(dòng)態(tài)面包屑的代碼示例
這篇文章主要給大家介紹一下Vue3動(dòng)態(tài)面包屑是如何實(shí)現(xiàn)的,實(shí)現(xiàn)思路又是什么,以及發(fā)給大家介紹一下面包屑的功能,文章通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
Vue router動(dòng)態(tài)路由實(shí)現(xiàn)過程
Vue動(dòng)態(tài)路由(約定路由),聽起來好像很玄乎的樣子,但是你要是理解了實(shí)現(xiàn)思路,你會(huì)發(fā)現(xiàn)沒有想象中的那么難,下面這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)動(dòng)態(tài)路由添加功能的簡單方法,需要的朋友可以參考下2023-03-03
如何使用vue slot創(chuàng)建一個(gè)模態(tài)框的實(shí)例代碼
這篇文章主要介紹了如何使用vue slot創(chuàng)建一個(gè)模態(tài)框,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Nginx同一端口部署多個(gè)前后端分離的vue項(xiàng)目完整步驟
最近做項(xiàng)目結(jié)構(gòu)優(yōu)化,前端項(xiàng)目都是部署在nginx上,想實(shí)現(xiàn)同一個(gè)端口可以訪問多個(gè)前端項(xiàng)目,所以就有了本文,這篇文章主要給大家介紹了關(guān)于Nginx同一端口部署多個(gè)前后端分離的vue項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-10-10
vue3中的數(shù)據(jù)劫持的最新實(shí)現(xiàn)方案的proxy示例詳解
Vue3中使用Proxy實(shí)現(xiàn)數(shù)據(jù)劫持,解決了Vue2中數(shù)組和對象劫持的遺留問題,Proxy可以修改某些操作的默認(rèn)行為,通過get和set方法實(shí)現(xiàn)數(shù)據(jù)的劫持和保護(hù)機(jī)制,感興趣的朋友跟隨小編一起看看吧2024-11-11
element?el-tree折疊收縮的實(shí)現(xiàn)示例
本文主要介紹了element?el-tree折疊收縮的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

