I want to create a hash on build and set is as environment variable. It should be accessible by node.
Firstly I wrote a bash script, exported the environment variable in the script and sourced it in the
Problem is node doesn’t know the
Now I rewrote the script in Typescript (due to the whole project using TS not JS).
In the script I set the variable as follows:
process.env.VARIABLE = hashFunction(path);
The function is called through a script in
"hash": "ts-node path/to/script.ts"
The function works as it should, but the environment variable is not set. Can someone help me to resolve this? Is it possible to return the string outside of the script and set it from there?
If possible i’d like to not use an external package.
Thank you 🙂
Can’t (easily) change environment variables for parent process
You can change/set the environment for the currently running process. That means that when
ts-node runs your program, you are changing the environment variables for your script and for
After your script is finished running,
ts-node stops, and the environment changes are lost. They don’t get passed back to the shell.
Changing another process’s environment
Changing the environment variables for the parent process (the shell) is a much more complicated process and depends on your OS and upon having the correct permissions. For linux, one such technique is listed here. In Windows, you can find some hints by looking at this question.
Your other option might be to just return a string that your shell understands, and run that.
Answered By – Codebling
Answer Checked By – Marilyn (BugsFixing Volunteer)