簡體   English   中英

加載本地環境變量以用於NPM腳本

[英]Load Local Environmental Variables For Use In NPM Scripts

我有一個NPM腳本,如下所示:

"start": "server start --host $DEV_HOST"

還有許多其他腳本也引用$DEV_HOST

當前$DEV_HOST已導出到我的~/.bashrc ,但是我想找到一種在項目中本地定義它的方法,例如在.env文件中。

我想知道npm是否提供了一個preall鈎子,該鈎子將允許調用一個可以在本地envs中加載的簡單bash文件,但是不存在這樣的鈎子。

NPM似乎也沒有為本地環境提供任何加載機制。

我目前能想到的唯一解決方案是:

  1. 將所有需要本地env的腳本移動到它們自己的bash文件中,並在每個腳本中加載.env文件。

  2. 在需要從.env文件加載到envs中的需要本地env的每個腳本之前,調用一個單獨的腳本。

兩者看起來都不必要地麻煩,並且擴展性不好。

有什么方法可以加載在項目本地文件中定義的環境,以便可以在NPM腳本中使用它們?

注意: 我不是在問如何將env加載到應用程序中。 我在問如何使nv腳本可以使用env。 這兩件事完全不同。 Dot-env將envs添加到當前進程。 即使您創建了使用dot-env加載某些env的節點腳本,這些env也不會通過$變量提供,因為它們沒有加載到環境中。 它們只能通過process.env在同一進程中使用。

您只需在NPM腳本中回顯一個環境變量即可。

例如,在項目根目錄的命令行上運行以下命令:

export SOME_ENV=blalala

然后可以在package.json像這樣使用它:

"scrips:" {
  "print-env": "echo $SOME_ENV"
}

blalala輸出到控制台。

如果要在腳本中可用的.env定義環境變量,請使用類似以下內容的內容: https : .env

npm i better-npm-run

創建您的.env文件,然后完全如上所示使用變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM