在 npm 上有一個非常熱門的 JS 工具庫: dotenv ,其每周下載量高達近 4000 萬。這個庫已經出現了 11 年,可謂是久經考驗,但它也存在一些問題。因此,dotenv 的作者 Mot 重新實作了一個 dotenv 的替代品 —— dotenvx ,並於近日釋出了 1.0 版本。本文就來看看 dotenv 有什麽問題,以及全新的替代品 dotenvx 又有何優勢。
dotenv 是什麽?有什麽問題?
dotenv 是一種將環境變量從
.env
檔載入到環境中的零依賴模組。它通常用於軟體開發中,以便在不同環境(如開發、測試、預發和生產環境)之間管理敏感資訊(如 API 金鑰等),而無需將這些資訊寫死到程式碼中。使用 dotenv 可以幫助提高套用的安全性和可移植性。
註意 :雖然 Node.js 20.6 版本已經原生支持了 .env 檔,但現在大多數計畫使用的還是低版本的 Node.js,依舊需要借助 dotenv 來實作環境變量的載入。
實際上,知名前端構建工具 Vite 在內部也是使用 dotenv 來實作從
.env
檔中載入變量了。開發者不需要手動呼叫與 dotenv 相關的東西,Vite 會自動完成所有操作。
那 dotenv 存在什麽問題呢?
.env 檔泄露風險
:
.env
檔可能包含敏感資訊,如不慎泄露可能導致嚴重的安全問題。
管理多個環境的復雜性
:
dotenv
在處理多個環境配置時支持有限,增加了手動管理和出錯的復雜性。
跨平台的不一致性
:
dotenv
在不同作業系統上的行為可能有所不同,可能導致跨平台部署時遇到意外問題。
為了解決這個問題,dotenv 的作者決定開發新一代配置管理工具,dotenvx 由此誕生。
dotenv 誕生
dotenvx 是下一代配置管理工具,其從誕生之後就受到了很多開發者的喜愛,目前其每周下載量超 11.6 萬。
dotenvx 的出現就是為了解決 dotenv 中的問題,因此,它具有以下特點:跨平台執行
特點:dotenvx 能夠在不同的程式語言、框架和平台上以相同的方式工作,確保環境變量在任何環境中都能正確地被註入和使用。
解決的問題:這解決了在不同平台上配置環境變量時可能出現的不一致性問題。
支持多個環境
特點:dotenvx 允許使用者建立特定於環境的
.env
檔(例如
.env.production
),並使用
-f
參數來載入它們,使得在不同環境之間切換變得簡單和靈活。
解決的問題:這解決了在開發、測試和生產等多個環境之間管理不同配置的問題,避免了環境混淆和配置錯誤。
加密環境變量
特點:dotenvx 提供了加密功能,允許使用者透過簡單的命令(如
dotenvx encrypt
)來加密
.env
檔中的敏感資訊。
解決的問題:透過加密,即使
.env
檔被泄露,沒有相應的私鑰也無法解密和讀取敏感數據,從而顯著提高了安全性。
除此之外,deotenvx 支持在多個程式語言和框架中使用: