詳解在vue開發(fā)中如何利用.env文件
前言
我們?cè)?vue 項(xiàng)目的目錄中經(jīng)??吹?env 開頭的文件,在文件內(nèi)聲明一些變量,這些變量就是一些配置變量,在不同環(huán)境下可使用的變量。
# 頁面標(biāo)題 VITE_APP_TITLE = 管理系統(tǒng) # 開發(fā)環(huán)境配置 VITE_APP_ENV = 'development' # 管理系統(tǒng)/開發(fā)環(huán)境 VITE_APP_BASE_API = '/'
環(huán)境
項(xiàng)目的運(yùn)行不止在我們敲代碼的時(shí)候,還在正式使用時(shí)等等,在這些情況我們區(qū)分為有本地環(huán)境、測(cè)試環(huán)境、預(yù)生產(chǎn)、生產(chǎn)環(huán)境等等。
在這不同環(huán)境下,代碼運(yùn)行的情況肯定是不一樣的,這個(gè)時(shí)候就需要 env 文件,來控制其中變化的情況,實(shí)現(xiàn)差異性配置。
env 命名
通常 env 文件命名如下:
- .env 所有環(huán)境(開發(fā)、測(cè)試、生成等)均會(huì)加載并合并該文件。
- .env.development 開發(fā)環(huán)境
- .env.production 生產(chǎn)環(huán)境
其中.env、.env.development、.env.production 文件的命名為固定格式,不能改變,否則讀取不到文件。
文件讀取
package.json vue 中所需要的的依賴會(huì)根據(jù)該文件來安裝。
- scripts:支持的腳本
- dependencies: 生產(chǎn)環(huán)境依賴包列表
- devDependencies: 開發(fā)環(huán)境、測(cè)試環(huán)境依賴包列表
而在 package.json 文件中 有 scripts字段用來定義腳本命令, Vue 會(huì)根據(jù)啟動(dòng)命令自動(dòng)加載對(duì)應(yīng)的環(huán)境配置文件。其中的屬性是用來運(yùn)行 npm run 命令的,屬性名可以隨意更改;而屬性的值,才是真正運(yùn)行的命令,是固定的。
"scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build --mode development", "build:pro": "vue-cli-service build --mode production", "build:test": "vue-cli-service build --mode test", },
配置環(huán)境變量
該文件注釋用 # 號(hào)開頭,定義變量直接是 屬性 = 值。
# 頁面標(biāo)題 VITE_APP_TITLE = 管理系統(tǒng) # 環(huán)境配置 VITE_APP_ENV = 'development' # api 基礎(chǔ)路徑 VITE_APP_BASE_API = '/dev-api' // 或 VUE_APP_BASE_API = '/dev-api'
使用
我們知道了在不同環(huán)境下使用相應(yīng) env 文件中的變量,那么想要在項(xiàng)目中使用該變量要怎么做呢?
在項(xiàng)目中,如果我使用的是 vite ,要想在項(xiàng)目中使用變量的開頭就需要是 VITE_
,而不是 VITE_
開頭的變量就不能被獲取到。
// 在 vite 程序中獲取 console.log(import.meta.env.VITE_APP_BASE_API); // /dev-api // 在 vue2 項(xiàng)目中獲取 console.log(process.env.VUE_APP_BASE_API); // /dev-api
在 vite 中對(duì)于不支持 import.meta.env
來獲取變量,我們可以使用 Vite 導(dǎo)出的 loadEnv 函數(shù)來加載指定的 .env 文件
import { defineConfig, loadEnv } from 'vite' export default defineConfig(({ command, mode }) => { // 根據(jù)當(dāng)前工作目錄中的 `mode` 加載 .env 文件 // 如果當(dāng)前環(huán)境是開發(fā)環(huán)境,則 mode 為 development // 設(shè)置第三個(gè)參數(shù)為 '' 來加載所有環(huán)境變量,而不管是否有 `VITE_` 前綴。 const env = loadEnv(mode, process.cwd(), '') const { VITE_APP_BASE_API } = env // VITE_APP_BASE_API = /dev-api return { // vite 配置 define: { __APP_ENV__: JSON.stringify(env.APP_ENV), }, } })
總結(jié)
- 默認(rèn)情況下 .env 文件要放在和 package.json 同一目錄下才可以被加載,除非在配置文件中更改加載目錄。
- 不同的環(huán)境會(huì)加載不同的 .env 文件。
- 要想使用環(huán)境變量,變量的開頭有固定要求,在 vite 項(xiàng)目中以 VITE_ 開頭,在 vue2 項(xiàng)目中以 VUE_APP 開頭。
到此這篇關(guān)于詳解在vue開發(fā)中如何利用.env文件的文章就介紹到這了,更多相關(guān)vue利用.env文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue.js頁面中有多個(gè)input搜索框如何實(shí)現(xiàn)防抖操作
debounce是lodash工具庫中的一個(gè)非常好用的函數(shù)。這篇文章主要介紹了Vue.js頁面中有多個(gè)input搜索框如何實(shí)現(xiàn)防抖操作,需要的朋友可以參考下2019-11-11element?實(shí)現(xiàn)導(dǎo)航欄收起展開功能及思路
這篇文章主要介紹了element?實(shí)現(xiàn)導(dǎo)航欄收起展開功能,實(shí)現(xiàn)思路先給 el-menu加上 :collapse="isCollapse" 屬性,這個(gè)屬性也是 element 上的一個(gè)參數(shù),意思為是否開啟折疊動(dòng)畫,在 data 中定義 isCollapse ,用 true 和 false 控制展開與收起,需要的朋友可以參考下2023-01-01解決vue項(xiàng)目input輸入框雙向綁定數(shù)據(jù)不實(shí)時(shí)生效問題
這篇文章主要介紹了解決vue項(xiàng)目input輸入框雙向綁定數(shù)據(jù)不實(shí)時(shí)生效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08vue-axios的使用以及axios請(qǐng)求賦值為空的問題
這篇文章主要介紹了vue-axios的使用以及axios請(qǐng)求賦值為空的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04Vue框架+Element-ui(el-upload組件)使用http-request方法上傳文件并顯示文件上傳進(jìn)度功能
這篇文章主要介紹了Vue框架+Element-ui(el-upload組件)使用http-request方法上傳文件并顯示文件上傳進(jìn)度功能,本通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08Vue3使用Proxy構(gòu)建高效響應(yīng)式數(shù)據(jù)的示例代碼
在 Vue 3 中,Proxy 主要用于 攔截對(duì)象的基本操作,包括 屬性讀?。╣et)、修改(set)、刪除(deleteProperty) 等,本文給大家介紹了Vue3使用Proxy構(gòu)建高效響應(yīng)式數(shù)據(jù)的操作教程,需要的朋友可以參考下2025-03-03element-ui 中使用upload多文件上傳只請(qǐng)求一次接口
這篇文章主要介紹了element-ui 中使用upload多文件上傳只請(qǐng)求一次接口,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07nginx部署訪問vue-cli搭建的項(xiàng)目的方法
本篇文章主要介紹了nginx部署訪問vue-cli搭建的項(xiàng)目的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02