Изменение переменных среды терминала из node.js - PullRequest
0 голосов
/ 03 июля 2018

Я работаю над простым CLI node.js, который предоставляет функциональность для (MF) аутентификации для AWS. Это требует вызова AWS CLI и обновления переменных среды в текущем терминале (для того, чтобы разрешить прямые вызовы aws cli или другим потребителям aws cli для его вызова).

Есть ли способ обновить переменные среды, чтобы они могли быть доступны для вызывающего терминала? Ни process.env['KEY'] = 'VALUE', ни require('child_process').exec('export KEY=VALUE', ...) не работают, так как они кажутся изолированными от текущего или дочернего процесса, а не от исполняющего терминала.

Решения или альтернативы, которые по-прежнему допускают простой вызов через CLI node.js, будут высоко оценены! У меня уже есть скрипт bash, который делает это, но хотел разрешить вызовы через узел, чтобы его было проще устанавливать и обеспечить согласованный интерфейс с другими функциями.

ОС: в настоящее время Linux, возможно, также Windows позже. Версия узла: 10 +

1 Ответ

0 голосов
/ 03 июля 2018

Если я правильно понимаю ваш вопрос, вы пытаетесь передать переменные окружения из дочернего процесса обратно в родительский процесс. Это невозможно. Однако, возможно, стоит попытаться выложить переменную окружения в виде строкового вывода и использовать ее для создания исходной среды в родительском процессе.

...