我需要从Node(当前使用v8.9.3
)
理想情况下,我希望在程序启动时运行export DATA_DIR=/var/lib/data
。
1。尝试生成child_process
来设置此项,但
示例:
const { spawnSync } = require( 'child_process' );
spawnSync( 'export', [ 'DATA_DIR=/var/lib/data' ] );
但这会导致ENOENT
:
Error: spawnSync export ENOENT...
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawnSync export',
path: 'export',
spawnargs: [ 'DATA_DIR=/var/lib/data' ]
2。尝试设置process.env.DATA_DIR = '/var/lib/data'
,但此似乎是节点进程的本地,并且其他人无法识别。
3。尝试了npm模块:dotenv
,envs
,environmental
和tiny-envs
,这些模块主要用于加载环境变量。< / p>
提前谢谢。
答案 0 :(得分:1)
您不能为不是当前进程后代的进程设置环境变量。在Linux下,没有系统环境变量这样的东西。
export
不是一个独立的命令,而是一个内置的shell,它为当前shell进程设置环境变量,并在设置后分叉其子进程。就像你打开终端的两个标签,并从这个标签中export
一个值,并使用其他标签中的值。
您可以使用您的格式将密钥,值保存到文件,然后另一个进程可以读取该文件以获取密钥的值。