使用 NodeJS 设置环境变量
Setting environment variable with NodeJS
我需要从 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
这些主要用于加载环境变量。
提前谢谢你。
您不能为不是当前进程后代的进程设置环境变量。而在Linux下,是没有系统环境变量的。
export
不是一个独立的命令,而是一个 shell 内置命令,它为当前 shell 进程及其设置后分叉的子进程设置环境变量。就像您打开终端的两个选项卡和 export
此选项卡中的值并使用其他选项卡中的值。
您可以使用您的格式将键、值保存到文件中,然后另一个进程可以读取该文件以获取键的值。
我需要从 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
这些主要用于加载环境变量。
提前谢谢你。
您不能为不是当前进程后代的进程设置环境变量。而在Linux下,是没有系统环境变量的。
export
不是一个独立的命令,而是一个 shell 内置命令,它为当前 shell 进程及其设置后分叉的子进程设置环境变量。就像您打开终端的两个选项卡和 export
此选项卡中的值并使用其他选项卡中的值。
您可以使用您的格式将键、值保存到文件中,然后另一个进程可以读取该文件以获取键的值。