- Fix
EMFILE
errors thrown on Windows whennve
is called multiple times at once.
- Upgrade internal dependencies. This is not expected to be a breaking change.
- Minimal supported Node.js version is now
18.18.0
- The Node.js version can now be specified as a file path to a
.nvmrc
,package.json
(engines.node
field) or similar files. (#37)
$ nve /path/to/.nvmrc npm test
- When running multiple Node.js versions, the full resolved versions are now
printed. For example,
nve 10,12 ...
will printNode.js 10.24.1
andNode.js 12.22.12
before each command's output, providing multiple Node.js versions are used at once.
- Ensure errors while downloading Node.js binaries are correctly printed (#36)
- Minimal supported Node.js version is now
16.17.0
- Upgrade Execa
- Reduce npm package size by 41%
- Improve error handling
- Reduce npm package size
- Improve error handling
- Minimal supported Node.js version is now
14.18.0
- Fix when
stdin
is empty
- Minimal supported Node.js version is now
12.20.0
- The default value of the
--fetch
CLI flag is nowtrue
when no command was passed.
- Fix crash when downloading several Node.js binaries in parallel
- Improve colors detection
- Fix offline mode
- Commas should now be used to separate multiple Node
versions. For example
nve 8 10 12 node --version
should now benve 8,10,12 node --version
. - Rename the alias
here
tolocal
- Add the alias
global
to target the global Node version, regardless of the current directory
- Rename the alias
now
tohere
thanks to feedback from @AdrieanKhisbe
- Aliases
c
andcurrent
renamed tonow
- The alias
now
now takes into accountpackage.json
engines.node
field and additional files used by other Node.js version managers. - Alias
l
removed: please uselatest
instead
- Added alias
lts
to target the latest LTS version
- Fix aliases shortcuts
l
andc
- Rename
*
alias tolatest
orl
- Rename
.
alias tocurrent
orc
- Remove
_
alias
- Fix warning message printed when running some commands
- Add
fetch
CLI flag to control caching
- Checksum checks were not working when the
mirror
option was used
- Can use the
_
alias to refer to the current process's Node.js version:nve _ npm test
- Can use the
.
alias to refer to the current project's Node.js version using its.nvmrc
,.node-version
or.naverc
:nve . npm test
- Fix terminal color changing on Windows
- Fix
arch
option
- Add
arch
option to specify the CPU architecture.
- Minimal supported Node.js version is now
10.17.0
- Node.js binary download is now 50% faster on Windows
- Fix crash when Node.js binary URL is invalid
- Node.js binary download is now twice faster on Windows
- Fix ARM, PowerPC, S390 support
- Warn when a new version is available
- Fix running
npm
ornpx
binaries on Windows
- Fix global binaries not working on Windows
- Fix executing binaries by specifying their file paths on Windows
- Remove the
--shell
CLI flag. Sincenve
already runs in a shell, this flag is not needed. Shell-specific features (such as variables, globbing, etc.) work as expected since those are performed beforenve
is called.
- Fix executing
yarn
.
- Improve the internal directory structure used to cache the Node.js binary
- Cleanup temporary files when Node.js download fails
- Executing
npm
,yarn
andpnpm
was not working properly, for example when doing global installs (npm i -g ...
).
- Improve the appearance of the progress bar
- Ensure Node.js binaries are not corrupted by checking their checksums
- Use cache when offline (no network connection)
- When
nve
is run without any command, it prints the available Node.js version. If you also want to cache the initial Node.js binary download, you must now usenve VERSION node --version
instead ofnve VERSION
.
- Make Node.js binary download twice faster on Linux and MacOS
- Improve error messages
- Reduce the number of dependencies
- Reduce the number of dependencies
- Upgrade
nvexeca
to1.1.0
- The programmatic API has been moved to a separate repository and npm package
nvexeca
with fewer dependencies.
- The programmatic API has been updated. Please refer to its new documentation.
- Use a progress bar instead of a spinner with the
progress
CLI flag.
- Internal changes
- To perform a dry run programatically,
command: undefined
cannot be used withrunVersion()
orrunVersions
. A new methoddryRunVersion()
should be used instead.
- Add the
--parallel
CLI flag. This allows running multiple Node versions in parallel (at the same time) which is faster. - Improve error messages
- Add the
--continue
CLI flag. By default, when running multiple Node versions and one of those versions fails, the others are aborted. This flag disables this.
- Show percentage instead of number of megabytes in spinner
- Allow running
multiple versions at once.
For example
nve 12 10 8 npm test
will run tests on Node 8, 10 and 12. - Running multiple versions can also be done programmatically using
runVersions()
- Improve error messages
- Fix missing dependency
- Remove
npm-run-path
andfilter-obj
as direct production dependencies
- Improve speed
- Remove
path-key
as a direct production dependency
- Internal changes
- Make the
progress
option default tofalse
programmatically.
- It is now possible to
omit the
command
. For examplenve 8
instead ofnve 8 npm test
. This can be used to cache the Node.js binary download without executing any command.
nve VERSION
must now be followed bynode
. For examplenve 8
should now benve 8 node
andnve 8 file.js
should benve 8 node file.js
.- The
NVE_PROGRESS
environment variable has been removed. The--no-progress
option should be used instead. - The programmatic usage has changed: please see the new API
- Global binaries can now be executed such as
nve 8 npm test
. Keep in mind that the binary must be compatible with the chosen Node.js version. For examplenpm
is only compatible with Node>=6
. - Local binaries can be executed as well
- Add the
--shell
option to run a command inside a shell - Add the
--mirror
option to change the base URL to retrieve Node.js binaries - Add the
--help
and--version
CLI flags - Execa is now used under the hood which provides with additional features and options when run programmatically
- If the script spawns child processes, those will now use the correct Node.js version
- Ensure
nve
does not exit untilstdout
andstderr
have been flushed
- Internal changes
- Improve error messages
- Fix
CTRL-C
not working
- Improve progress messages on console
- Improve progress messages on console
- Add alternative names for
NODE_MIRROR
:NVM_NODEJS_ORG_MIRROR
,N_NODE_MIRROR
andNODIST_NODE_MIRROR
- Fix cache invalidation bug
nve
can now be accessed from Node.js/programmatically.
- Retry downloading the Node.js binaries on network errors.
- Internal changes
- Spinner can now be disabled with the environment variable
NVE_PROGRESS=0
- A spinner is now shown when a new Node.js version is downloading
- Fix
EXDEV
error thrown when temporary directory uses a different partition (ehmicky/get-node#1)