How to Use the Command 'Set-NodeVersion' (with Examples)
The Set-NodeVersion
command is a key feature of the ps-nvm
module, which is a Node Version Manager for PowerShell. It allows users to switch between different installed versions of Node.js within PowerShell, providing great flexibility for developers needing to test applications across multiple Node.js environments. The command enables the setting of default Node.js versions either for the current session or persistently for future sessions, simplifying the multi-version management of Node.js installations.
Use a Specific Version of Node.js in the Current PowerShell Session
Code:
Set-NodeVersion node_version
Motivation:
There are instances when developers need to test or run applications using a specific version of Node.js because some Node applications are version-dependent. This command allows the user to specify a version of Node.js to use temporarily within a PowerShell session. It’s particularly helpful when you don’t wish to globally change the default Node.js version but need to work with a particular version’s features or debug issues.
Explanation:
Set-NodeVersion
: This is the primary command used for selecting which installed Node.js version the PowerShell session should use.node_version
: This argument specifies the exact version number of Node.js that the user wants to switch to, for instance,14.17.0
. Choosing the correct version lets the current terminal session access Node.js environments and libraries specific to that version.
Example Output:
Assuming node_version
is set to 14.17.0
, after running this command, PowerShell will switch to using Node.js version 14.17.0 for the current session. If you type node -v
, it should return v14.17.0
as the active version.
Use the Latest Installed Node.js Version 20.x
Code:
Set-NodeVersion ^20
Motivation:
This use case is beneficial when you want to leverage the latest features and security updates provided by the newest minor versions of a major series. The caret symbol (^
) is used to specify the latest available minor version in the 20.x range, which provides an easy method to ensure your development environment is up-to-date with the latest stable releases.
Explanation:
^20
: The caret symbol preceding the major release number is an XPath-style notation indicating the desire to use the latest minor release under the specified major version, in this case, version 20. Using this ensures you have the most recent and stable minor improvements and security patches.
Example Output:
After executing the command, if the latest installed version in the 20.x range, say 20.5.1, happens to be the latest, executing node -v
will return v20.5.1
.
Set the Default Node.js Version for the Current User
Code:
Set-NodeVersion node_version -Persist User
Motivation:
When a user frequently works with a specific Node.js version for personal projects or learning purposes, they may want to set this as their default environment each time they open a new PowerShell session. This persists the configuration across sessions but only affects the user’s own account, leaving system-level settings unchanged for others.
Explanation:
-Persist User
: The-Persist
flag withUser
specifies that the chosen Node.js version should be remembered as the default for the user’s PowerShell profile, ensuring personal convenience and efficiency for subsequent interactions.
Example Output:
Suppose you set node_version
to 16.14.0
. After setting this configuration, every new PowerShell session will default to Node.js version 16.14.0 for the current user. After opening a new session and running node -v
, you’ll see v16.14.0
confirming the default setting.
Set the Default Node.js Version for All Users
Code:
Set-NodeVersion node_version -Persist Machine
Motivation:
This action is pivotal when managing a shared development environment where a consistent Node.js version needs to be maintained across multiple users. It’s a practical solution for teams needing a standardized environment or when preparing a machine for training or demos to ensure consistency across user profiles.
Explanation:
-Persist Machine
: The-Persist
flag combined withMachine
means that the version setup applies at the system level. This requires administrative rights, providing a global default Node.js version applicable to all users across all PowerShell sessions, securing uniformity on development machines.
Example Output:
If the command sets the Node.js version to 18.10.0
, after running the command and possibly restarting PowerShell or the machine, executing node -v
on any user profile should return v18.10.0
, indicating successful global version setting.
Conclusion
The Set-NodeVersion
command is a flexible and powerful tool for managing Node.js environments within PowerShell, accommodating varying needs from temporary session-specific settings to persistent configurations affecting specific users or entire systems. Whether you’re an individual developer setting your personal environment or an administrator ensuring consistency across multiple users, this command meets a wide range of requirements with precision and ease.