16
Quiero establecer una variable de entorno al ejecutar un programa a través de child_process.exec
. es posible?NodeJS establecer la variable de entorno para el ejecutivo
He intentado establecer el env
así:
exec('FOO', {'FOO': 'ah'}, function(error, stdout, stderr) {console.log(stdout, stderr, error);});
pero el mensaje resultante dijo FOO no existía.
Cualquiera que use este debe tomar en cuenta que la especificación de las variables de entorno de esta manera reemplaza el conjunto _entire_ de variables de entorno, incluyendo * * 'cualquier path' que de otro modo podrían existir. Por lo tanto, si intentas establecer una variable env y de repente obtienes errores sobre el comando que estás tratando de ejecutar, este es el motivo. Esto no está claro en absoluto en la documentación y me dejó rascándome la cabeza un poco. Si desea agregar variables env y mantenerse independiente de la plataforma, puede hacer una copia de 'process.env', aplicar sus cambios a eso y pasarlo a' child_process.exec'. – DanielSmedegaardBuus
También puede actualizar 'process.env' direclty. Ej: 'process.env [" PATH "] + = path.delimiter + process.cwd() + path.sep +" node_modules "+ path.sep +" .bin "' – mems