最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vite項目import.meta.env如何能獲取非VITE開發(fā)的環(huán)境變量

 更新時間:2024年05月08日 15:01:36   作者:微信小程序APP開發(fā)  
這篇文章主要介紹了vite項目import.meta.env如何能獲取非VITE開發(fā)的環(huán)境變量問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vite項目import.meta.env能獲取非VITE開發(fā)的環(huán)境變量

在Vite項目中,??import.meta.env???是一個全局對象,用于訪問環(huán)境變量。

默認情況下,??import.meta.env??只能獲取到Vite的開發(fā)環(huán)境變量,而不能獲取非Vite開發(fā)的環(huán)境變量。

這是因為Vite使用特定的方式來處理環(huán)境變量,并提供了一個插件來注入這些環(huán)境變量。

如果你想在Vite項目中獲取非Vite開發(fā)的環(huán)境變量,可以通過以下步驟:

安裝dotenv包:在Vite項目中,首先需要安裝dotenv包,用于加載.env文件中的環(huán)境變量。

可以使用以下命令進行安裝:

npm install dotenv --save-dev

創(chuàng)建.env文件:在項目根目錄下創(chuàng)建一個名為.env的文件,并在文件中定義你需要的環(huán)境變量。

例如,.env文件內(nèi)容如下:

API_URL=https://example.com/api

vite.config.js中配置dotenv插件:打開vite.config.js文件,添加以下配置來啟用dotenv插件:

import { defineConfig } from 'vite'
import dotenv from 'dotenv'
 
export default defineConfig({
  plugins: [dotenv()],
})

在你的代碼中引入環(huán)境變量:現(xiàn)在你可以在你的代碼中使用process.env來訪問環(huán)境變量。

例如,可以通過process.env.API_URL來訪問之前在.env文件中定義的API_URL環(huán)境變量。

注意事項:

  • 在Vite項目中,??dotenv??插件將會自動讀取??.env??文件,并將其中的環(huán)境變量注入到??process.env??中。?
  • ?.env??文件應(yīng)當(dāng)被添加到你的代碼版本控制系統(tǒng)的??.gitignore??文件中,以避免將敏感信息提交到源代碼庫中。

通過上述步驟,你可以在Vite項目中使用??import.meta.env??來獲取非Vite開發(fā)的環(huán)境變量。

Vite的環(huán)境變量

環(huán)境變量和模式

環(huán)境變量

Vite 在一個特殊的 import.meta.env 對象上暴露環(huán)境變量。

這里有一些在所有情況下都可以使用的內(nèi)建變量:

  • import.meta.env.MODE: {string} 應(yīng)用運行的模式。
  • import.meta.env.BASE_URL: {string} 部署應(yīng)用時的基本 URL。他由base 配置項決定。
  • import.meta.env.PROD: {boolean} 應(yīng)用是否運行在生產(chǎn)環(huán)境。
  • import.meta.env.DEV: {boolean} 應(yīng)用是否運行在開發(fā)環(huán)境 (永遠與 import.meta.env.PROD相反)。
  • import.meta.env.SSR: {boolean} 應(yīng)用是否運行在 server 上。

生產(chǎn)環(huán)境替換

在生產(chǎn)環(huán)境中,這些環(huán)境變量會在構(gòu)建時被靜態(tài)替換,因此,在引用它們時請使用完全靜態(tài)的字符串。

動態(tài)的 key 將無法生效。

例如,動態(tài) key 取值 import.meta.env[key] 是無效的。

它還將替換出現(xiàn)在 JavaScript 和 Vue 模板中的字符串。這本應(yīng)是非常少見的,但也可能是不小心為之的。

在這種情況下你可能會看到類似 Missing Semicolon 或 Unexpected token 等錯誤,

例如當(dāng)"process.env.NODE_ENV" 被替換為 "“development”: "。

有一些方法可以避免這個問題:

對于 JavaScript 字符串,你可以使用 unicode 零寬度空格來分割這個字符串,

例如: 'import.meta\u200b.env.MODE'。

對于 Vue 模板或其他編譯到 JavaScript 字符串的 HTML,你可以使用 標(biāo)簽,

例如:import.meta.env.MODE。

.env 文件

Vite 使用 dotenv 從你的 環(huán)境目錄 中的下列文件加載額外的環(huán)境變量:

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

環(huán)境加載優(yōu)先級

一份用于指定模式的文件(例如 .env.production)會比通用形式的優(yōu)先級更高(例如 .env)。

另外,Vite 執(zhí)行時已經(jīng)存在的環(huán)境變量有最高的優(yōu)先級,不會被 .env 類文件覆蓋。

例如當(dāng)運行 VITE_SOME_KEY=123 vite build 的時候。

.env 類文件會在 Vite 啟動一開始時被加載,而改動會在重啟服務(wù)器后生效。

加載的環(huán)境變量也會通過 import.meta.env 以字符串形式暴露給客戶端源碼。

為了防止意外地將一些環(huán)境變量泄漏到客戶端,只有以 VITE_ 為前綴的變量才會暴露給經(jīng)過 vite 處理的代碼。

例如下面這些環(huán)境變量:

VITE_SOME_KEY=123
DB_PASSWORD=foobar

只有 VITE_SOME_KEY 會被暴露為 import.meta.env.VITE_SOME_KEY 提供給客戶端源碼,而 DB_PASSWORD 則不會。

console.log(import.meta.env.VITE_SOME_KEY) // 123
console.log(import.meta.env.DB_PASSWORD) // undefined

此外,Vite 使用 dotenv-expand 來直接拓展變量。想要了解更多相關(guān)語法,請查看 它們的文檔。

請注意,如果想要在環(huán)境變量中使用 $ 符號,則必須使用 \ 對其進行轉(zhuǎn)義。

KEY=123
NEW_KEY1=test$foo   # test
NEW_KEY2=test\$foo  # test$foo
NEW_KEY3=test$KEY   # test123

如果你想自定義 env 變量的前綴,請參閱 envPrefix。

安全注意事項

.env.*.local 文件應(yīng)是本地的,可以包含敏感變量。

你應(yīng)該將 .local 添加到你的 .gitignore 中,以避免它們被 git 檢入。

由于任何暴露給 Vite 源碼的變量最終都將出現(xiàn)在客戶端包中,VITE_* 變量應(yīng)該不包含任何敏感信息。

TypeScript 的智能提示

默認情況下,Vite 在 vite/client.d.ts 中為 import.meta.env 提供了類型定義。

隨著在 .env[mode] 文件中自定義了越來越多的環(huán)境變量,你可能想要在代碼中獲取這些以 VITE_ 為前綴的用戶自定義環(huán)境變量的 TypeScript 智能提示。

要想做到這一點,你可以在 src 目錄下創(chuàng)建一個 env.d.ts 文件,接著按下面這樣增加 ImportMetaEnv 的定義:

/// <reference types="vite/client" />

interface ImportMetaEnv {
  readonly VITE_APP_TITLE: string
  // 更多環(huán)境變量...
}

interface ImportMeta {
  readonly env: ImportMetaEnv
}

如果你的代碼依賴于瀏覽器環(huán)境的類型,比如 DOM 和 WebWorker,你可以在 tsconfig.json 中修改 lib 字段來獲取類型支持。

{
  "lib": ["WebWorker"]
}

模式

默認情況下,開發(fā)服務(wù)器 (dev 命令) 運行在 development (開發(fā)) 模式,而 build 命令則運行在 production (生產(chǎn)) 模式。

這意味著當(dāng)執(zhí)行 vite build 時,它會自動加載 .env.production 中可能存在的環(huán)境變量:

.env.production

VITE_APP_TITLE=My App

在你的應(yīng)用中,你可以使用 import.meta.env.VITE_APP_TITLE 渲染標(biāo)題。

在某些情況下,若想在 vite build 時運行不同的模式來渲染不同的標(biāo)題,你可以通過傳遞 --mode 選項標(biāo)志來覆蓋命令使用的默認模式。

例如,如果你想在 staging (預(yù)發(fā)布)模式下構(gòu)建應(yīng)用:

bash
vite build --mode staging

還需要新建一個 .env.staging 文件:

.env.staging

VITE_APP_TITLE=My App (staging)

由于 vite build 默認運行生產(chǎn)模式構(gòu)建,你也可以通過使用不同的模式和對應(yīng)的 .env 文件配置來改變它,用以運行開發(fā)模式的構(gòu)建:

.env.testing

NODE_ENV=development

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • element-ui Upload上傳組件動態(tài)配置action方式

    element-ui Upload上傳組件動態(tài)配置action方式

    這篇文章主要介紹了element-ui Upload上傳組件動態(tài)配置action方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue3中使用viewerjs實現(xiàn)圖片預(yù)覽效果的項目實踐

    vue3中使用viewerjs實現(xiàn)圖片預(yù)覽效果的項目實踐

    viewer.js是一款開源的圖片預(yù)覽插件,功能十分強大,本文主要介紹了vue3中使用viewerjs實現(xiàn)圖片預(yù)覽效果的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 項目中Axios二次封裝實例Demo

    項目中Axios二次封裝實例Demo

    vue項目經(jīng)常會用到axios來請求數(shù)據(jù),那么首先肯定需要對這個請求方法進行一個二次封裝,這篇文章主要給大家介紹了關(guān)于項目中Axios二次封裝的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • vue實現(xiàn)文章內(nèi)容過長點擊閱讀全文功能的實例

    vue實現(xiàn)文章內(nèi)容過長點擊閱讀全文功能的實例

    下面小編就為大家分享一篇vue實現(xiàn)文章內(nèi)容過長點擊閱讀全文功能的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Vue+Element使用富文本編輯器的示例代碼

    Vue+Element使用富文本編輯器的示例代碼

    本篇文章主要介紹了Vue+Element使用富文本編輯器的示例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • vue實現(xiàn)tab路由切換組件的方法實例

    vue實現(xiàn)tab路由切換組件的方法實例

    這篇文章主要給大家介紹了關(guān)于vue實現(xiàn)tab路由切換組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • vue translate peoject實現(xiàn)在線翻譯功能【新手必看】

    vue translate peoject實現(xiàn)在線翻譯功能【新手必看】

    這篇文章主要介紹了vue translate peoject實現(xiàn)在線翻譯功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • Vue 2.x教程之基礎(chǔ)API

    Vue 2.x教程之基礎(chǔ)API

    這篇文章主要介紹了Vue 2.x基礎(chǔ)API的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Vue3+ElementUI 多選框中復(fù)選框和名字點擊方法效果分離方法

    Vue3+ElementUI 多選框中復(fù)選框和名字點擊方法效果分離方法

    這篇文章主要介紹了Vue3+ElementUI 多選框中復(fù)選框和名字點擊方法效果分離方法,文中補充介紹了VUE-Element組件 CheckBox多選框使用方法,需要的朋友可以參考下
    2024-01-01
  • 詳解vue中使用微信jssdk

    詳解vue中使用微信jssdk

    這篇文章主要介紹了vue中使用微信jssdk,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論

双江| 新晃| 逊克县| 永新县| 本溪| 枣阳市| 汕尾市| 河间市| 大竹县| 镶黄旗| 和政县| 微山县| 康定县| 梁河县| 博野县| 隆尧县| 永定县| 酉阳| 台北县| 福海县| 冕宁县| 阜宁县| 定南县| 建阳市| 阳谷县| 莆田市| 泌阳县| 洮南市| 长海县| 广宗县| 新邵县| 枞阳县| 延庆县| 紫阳县| 星座| 托里县| 镇平县| 浮山县| 河源市| 阳泉市| 灵寿县|