我将dotenv
用于读取环境变量。像这样:
let dotenv = require('dotenv').config({ path: '../../.env' });
console.log(process.env.DB_HOST);
现在,我想将更改保存到.env
文件中。我找不到任何将变量保存在.env
文件中的方法。我该怎么办?
process.env.DB_HOST = '192.168.1.62';
答案 0 :(得分:1)
.env文件
VAR1=var1Value
VAR_2=var2Value
index.js文件
const fs = require('fs')
const envfile = require('envfile')
const sourcePath = '.env'
console.log(envfile.parseFileSync(sourcePath))
let parsedFile = envfile.parseFileSync(sourcePath);
parsedFile.NEW_VAR = 'newVariableValue'
fs.writeFileSync('./.env', envfile.stringifySync(parsedFile))
console.log(envfile.stringifySync(parsedFile))
最终的.env文件 安装所需的模块并执行index.js文件
VAR1=var1Value
VAR_2=var2Value
NEW_VAR=newVariableValue
答案 1 :(得分:0)
我使用envfile
模块解决了问题:
const envfile = require('envfile');
const sourcePath = '../../.env';
let sourceObject = {};
// Parse an envfile path
// async
envfile.parseFile(sourcePath, function (err, obj) {
//console.log(err, obj)
sourceObject = obj;
sourceObject.DB_HOST = '192.168.1.62';
envfile.stringify(sourceObject, function (err, str) {
console.log( str);
fs.writeFile(sourcePath, str, function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});
});
});