I'm defining a custom $PATH
environment variable in my ~/.bash_profile
(on a Mac), like so:
PATH="$HOME/.cargo/bin:$PATH:$HOME/bin"
However, VS Code of course does not run my .bash_profile
, so it does not have my custom paths. In fact, if I Toggle Developer Tools and check process.env.PATH
, it doesn't even seem to have /usr/local/bin
.
How do I globally set the PATH
environment variable in VS Code?
(I want to set it globally, not per project or per task, since I'm maintaining a lot of small packages.)
If you only need the $PATH
to be set in the integrated terminal, you can use VS Code's terminal.integrated.env.<platform>
variable (added in version 1.15). Press Cmd+Shift+P (or Ctrl+Shift+P) and search for "Preferences: Open Settings (JSON)". Then add the following entry to the settings file:
"terminal.integrated.env.osx": {
"PATH": "...:/usr/bin:/bin:..."
}
(Replace .osx
with .linux
or .windows
as needed.)
To see your system's $PATH
, type echo "$PATH"
in Terminal.app, and copy and paste it into the settings snippet above.
As for having the $PATH
available everwhere in VS Code, so that it will
be used by extensions that call binaries, the only workaround I've found so far is this:
Configure your shell to have the $PATH
you want. For example, I'm using Bash, and my ~/.bash_profile
has the following line:
PATH="$PATH:$HOME/bin"
In VS Code, press ⇧⌘P and type install 'code' command
if you haven't done so before.
Quit VS Code.
Launch VS Code not by clicking its icon in the dock, but by opening Terminal.app and typing code
. Your newly set path will be active in VS Code until you quit it.
If VS Code restarts, for example due to an upgrade, the $PATH
will reset to the system default. In that case, quit VS Code and re-launch it by typing code
.
Update: VS Code on Mac and Linux now apparently tries to automatically resolve the shell environment when it is started by clicking the icon (rather than via code
). It does this by temporarily starting a shell and reading the environment variables. I haven't tested this though.