簡體   English   中英

如何使用腳本設置環境變量 [Node.js]

[英]How to set Environment variables using Script [Node.js]

如何使用 node.js 中的腳本設置環境變量?

我有腳本可以為我提供部署的 Solidity 合同地址,我必須在我的 .env 文件中使用它(我使用的是 dotenv 模塊)。

我試圖找出更新或添加新生成的合同值到 .env 文件的方法,但無法獲得太多。

有什么方法可以更新或添加從腳本到 .env 文件的值?

我不太明白你想要做什么,但通常環境變量是為運行時設置的。 當您的應用程序運行時,您不應更新 env 變量。

對於 dotenv ( https://www.npmjs.com/package/dotenv ),您創建一個文件.env在那里放置一些變量:

FOO=bar
BAZ=bob

然后需要並使用您的 .env 文件

require('dotenv').config();

console.log(process.env.FOO);
// bar

沒有任何庫,您也可以像這樣直接向節點腳本提供 env 變量

USER_ID=abc USER_PASSWORD=def node app.js

您不應將.env包含在您的版本控制存儲庫中(將其添加到您的.gitignore文件中)。

在 JavaScript 中,您可以使用任一環境變量,或者如果未定義,則添加其他內容,例如:

const yourVariable = process.env.yourVariable || 'Get stuff done';

我認為您要求的是我打賭您不應該對 env 變量做的事情。 無論如何,這是我發現的一個黑客,可能應該有效。 您可以像這樣在運行時設置新的 env 變量(我還沒有嘗試過),因為環境變量旨在從代碼外部而不是內部設置。 但是,可能存在您想要使用它的用例,啟動子進程或測試或其他任何東西。

process.env['NODE_ENV'] = 'production';

如果您想在運行時在 .env 中寫入值,您需要讀取並附加到文件中,這是一個全新的故事。 祝你好運。

你可以這樣做:

     fs.readFile("./.env", 'utf8', function (err, data) {
          if (err) {
            return console.log(err);
          };
          let envVar = process.env.envVar ;
          let re = new RegExp(envVar , "g");
          let result = data.replace(re, `${newEnvVarValue}`);
          console.log(result)

          fs.writeFile("./.env", result, 'utf8', function (err) {
            if (err) return console.log(err);
          });

請點擊此鏈接https://www.npmjs.com/package/dotenv ,它提供了一種使用 dotenv npm 包集成環境變量的清晰方法。

暫無
暫無

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

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