如何在.env文件中定义数组/对象? 1使用正常的字符串值或分隔符分隔的值存储环境制作一个js文件来处理环境变量

问题描述

以下是我的Javascript对象:

window.options = {
    VAR1: VAL1,VAR2: VAL2,VA31: VAL3,};

我希望在.env文件中定义它(对象或数组)。我该怎么办?

解决方法

.env值中的

值只能是字符串。

简单的解决方法是将env值存储为逗号分隔的值,例如:

SOME_VAR=VAL1,VAL2,VAL3

并将其拆分到您的js文件中:

const someVar = process.env.SOME_VAR.split(",");

console.log(someVar); // [ 'VAL1','VAL2','VAL3' ]

或者使用您想要的任何定界符。


如果要存储对象,(不干净的)解决方法是将JSON字符串存储为env值,例如

OBJECT_VAL={ "VAR1": "VAL1","VAR2": "VAL2","VA31": "VAL3" }

在您的js代码上,您可以解析JSON:

const objectVal= JSON.parse(process.env.OBJECT_VAL);
console.log(objectVal); // { VAR1: 'VAL1',VAR2: 'VAL2',VA31: 'VAL3' }

我个人认为在.env中存储JSON字符串不是一个好主意,因此,我建议我提出一种更好的存储.env值并将其用于js代码的方法。

1。使用正常的字符串值或分隔符分隔的值存储环境

例如:

ARRAY=VAL1,VAL3

VAR1=VALl1
VAR2=VALl2
VAR3=VALl3

制作一个js文件来处理环境变量

我将其命名为env.js,然后在此文件上导出包含所有环境变量的对象

module.exports = {
    array: process.env.ARRAY.split(","),object: {
       var1: process.env.VAR1,var2: process.env.VAR2,var3: process.env.VAR3,}
}

在其他文件上,您只需导入env.js并调用env值

const env = require("path/to/env.js");

console.log(env.array); // [ 'VAL1','VAL3' ]
console.log(env.object.var1); // "VAL1"

如果您的项目经常调用process.env,则此解决方案可能会使您的代码更简洁一些,因为您不需要在每次访问环境变量时都调用process.