本節內容衍生自以下連結的內容,並受 CC BY 4.0 授權約束。
以下內容若無特別說明,可視為基於原始內容進行修改和刪除的結果。
EnvironmentPlugin
是在 DefinePlugin
上使用 process.env
鍵的簡寫。
string[] | Record<string, string>
EnvironmentPlugin
接受鍵的陣列或將鍵對應到其預設值的物件。
這等效於以下的 DefinePlugin
應用
未指定環境變數會引發「EnvironmentPlugin
- ${key}
環境變數未定義」的錯誤。
或者,EnvironmentPlugin
支援物件,將鍵對應到其預設值。如果 process.env
中未定義鍵,則採用該鍵的預設值。
來自 process.env
的變數始終是字串。
與 DefinePlugin
不同,預設值由 EnvironmentPlugin
應用於 JSON.stringify
。
null
和 undefined
的預設值行為不同。對於必須在捆綁期間提供的變數,請使用 undefined
,如果它們是可選的,則使用 null
。
如果在捆綁期間找不到環境變數且未提供預設值,Rspack 將會拋出錯誤,而不是警告。
讓我們研究一下在測試檔案 entry.js
上執行先前的 EnvironmentPlugin
配置時的結果
當在終端機中執行 NODE_ENV=production
Rspack 以進行建置時,entry.js
會變成這樣
執行 DEBUG=false
Rspack 會產生
以下 EnvironmentPlugin
配置提供了對應於儲存庫最後一次 Git 提交的 process.env.GIT_VERSION
(例如「v5.4.0-2-g25139f57f」)和 process.env.GIT_AUTHOR_DATE
(例如「2020-11-04T12:25:16+01:00」)
第三方 DotenvPlugin
(dotenv-webpack
) 允許您公開(一個子集)dotenv 變數