nvm

Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

MIT License

Downloads
47.5K
Stars
75.4K
Committers
390

Bot releases are hidden (Show)

nvm - v0.39.7 Latest Release

Published by ljharb 11 months ago

Fixes

  • use \hash instead of command hash for zsh (#3239, #3247, #3246)
nvm - v0.39.6

Published by ljharb 11 months ago

New Stuff

  • nvm_resolve_alias: only resolve one line of a multiline alias file
  • aliases: skip leading blank lines in alias file

Fixes

  • nvm_get_mirror: ensure only a valid URL is allowed
  • avoid overridden hash
  • install.sh: when NVM_INSTALL_GITHUB_REPO is set, issue a warning (#2868)
  • nvm_get_mirror: disallow some non-URL characters
  • nvm_get_arch: proper value for alpine linux (#3212)
  • nvm_normalize_lts: switch from expr to case

Robustness

  • nvm_list_aliases: avoid overwritten sort

Performance

  • nvm_check_file_permissions: do not traverse into symlinks

Dockerfile

  • Remove apt src disabling, no longer needed (#3199)
  • [Fix] add missing leading slash in path (#3195)

Documentation

  • [readme] fix level of headings (#3230)
  • [readme] add section on bare nvm install (#3221)
  • [readme] missing parenthesis (#3215)
  • [readme] update M1 to “Apple Silicon” because of M2 and M3; fix typos (#3242)
  • [readme] rearrange install args (#3222)
  • [readme] reorganize “deeper shell integration” instructions (#1569)
  • [security] add prose explaining OpenSSF CII Best Practices badge results
  • [security] add threat model

Tests

  • temporarily allow cygwin tests to fail
  • temporarily allow WSL tests to fail
  • ensure windows tests install a node that actually works
  • update test mocks (new LTS, iron)
  • switch cygwin mirror
  • fix filename typo (#3217)
nvm - v0.39.5

Published by ljharb about 1 year ago

Fixes

  • nvm_strip_path: Preserve leading/trailing colons (#3145)
  • allow checksums to pass with a leading backslash
  • nvm install-latest-npm: ensure npm 10 does not install on unsupported nodes

Docs

  • [readme] add examples of setting specific versions as default (#3151)

Tests

  • add some nvm_do_install tests
  • a cleaner name for the windows tests
nvm - v0.39.4

Published by ljharb about 1 year ago

Fixes

  • fix node download link for armv8l (#3102)
  • nvm exec: no longer error with '-q: invalid option' for zsh users (#2800)
  • nvm_print_npm_version: if npm exists but its node crashes, do not print the npm version
  • nvm_ls_current: when node is present but crashes immediately, echo "none"
  • fix directory traversal when workdir path is not readable (#3080)
  • recognize 32Bit docker container and use x86 arch (#3051)
  • Remove unneeded call to ls in nvm_arch (#3012)

Perf

  • Improve performance of listing aliases (#3060)

Docker

  • Update base image from Ubuntu 20.04 to 22.04, cc #2877 (#3078)

Docs

  • [readme] add nvshim tool alongside avn (#2193)
  • [readme] fix typo in resolv.conf filename (#3135)
  • [readme] Update logo header (#3123)
  • [readme] Add instructions on how to install without editing shell config (#3100)
  • [readme] cdnvm function: fix shellcheck errors (#3082)
  • [readme] Update Travis CI badge and link url (#3077)

Miscellaneous

  • [meta] Remove unavailable testing script (#3105)
  • [Dev Deps] update markdown-link-check, semver
  • [actions] allow nvm to be installed

Tests

  • add unit tests for nvm_download_artifact
  • npm bin has been removed
  • downgrade python to v2 on travis (#3067)
  • move install script tests to github actions
  • improve debug output on failure
  • force the NVM_DIR to the expected location, for tests
  • Update urchin repository link (#2989)
nvm - v0.39.3

Published by ljharb almost 2 years ago

Fixes

  • nvm install-latest-npm: npm v6.14.18 can not be installed from npm < v4.4.4
  • ensure this variable is bound
  • debug: correct mistaken -V to --version from #2922
  • debug: awk: not an option: --version (#2922)
  • grep: warning: stray \ before / (#2919)
  • improve backward compatibility for non-gnu awk (#2917)
  • fix nvm install error unknown condition: -ne (#2915)

Tests

  • update test mocks (#2933)
  • move installation_node tests back to xenial
  • move tests that fail on focal to a separate suite that runs on xenial
  • update travis to use focal
  • [actions] fix latest-npm tests so they use this repo’s nvm instead of the last published one
  • fix nvm_list_aliases test to use mocks for LTS aliases

Docs

  • [meta] Improve contributors documentation (#2791)
  • [Docs] added WSL troubleshooting with solution to (6) Could not resolve host: raw.githubusercontent.com (#2961)

Refactors

  • add nvm_wrap_with_color_code; allow no color code
nvm - v0.39.2

Published by ljharb about 2 years ago

Fixes

  • --help: proper default NVM_COLORS info
  • nvm install-latest-npm: ensure npm 9 does not install on unsupported nodes
  • install.sh: support ~/.zprofile (#2892, #2868, #2232)
  • Don't override Mac M1 architecture for node ^14.17 (#2777)
  • nvm install: show proper version in .nvmrc install instructions (#2770)
  • install.sh: error out if the install instructions are not followed (#2742)
  • install: better error message when xcode command line tools are needed
  • avoid OpenBSD nvm install error when /sbin/init doesn't exist (#2698)
  • set -E: Add test for node install on Bash with an ERR trap and set -E
  • add missing local (handle nonexisting /sbin/init a bit more cleanly) (#2678)
  • Update nvm_extract_tarball to support OpenBSD (#2693)

Performance

  • nvm_print_versions: re-implement using awk

Robustness

  • avoid a clobbered ls (#2727)

Refactors

  • nvm install/nvm_install_default_packages: move "get" logic inside helper
  • add nvm_extract_tarball to consolidate extraction logic

Docs / Read Me

  • Update Alpine Linux Section (#2896)
  • optimize calling of nvm version in zsh (#2874)
  • Fix Ansible Linting Errors (#2861)
  • cdnvm(): handle failed dir change (#2840)
  • Fix Git Install instruction list structure (#2823)
  • add logo
  • minor cleanup
  • Add note about creating .bashrc file as well as .bash_profile (#2729)
  • fish: send output from load_nvm to /dev/stderr (#2783)
  • fix fish load_nvm variable interpolations (#2776)
  • Correct typos in "Macs with M1 chip" section (#2760)
  • HTTP => HTTPS (#2735, #2713)
  • clarify instructions for running Node on M1 Mac (#2675)

Dockerfile

  • Update base image from Ubuntu 18.04 to 20.04, cc #2877 (#2882)

Misc

  • [meta] Update CODE_OF_CONDUCT to current version (#2790)

Tests

  • update test mocks
  • github actions removed homebrew and broke shellcheck (#2907)
  • node 18 no longer builds in travis-ci (#2907)
nvm - v0.39.1

Published by ljharb almost 3 years ago

New Stuff

  • Add OpenBSD support (#1062)

Fixes

  • ls-remote/install: support lts/-X patterns in installs
  • ls-remote/install: properly handle lts/x patterns
  • nvm alias/nvm_list_aliases: support lts/ aliases
  • nvm_get_download_slug: better architecture selection for M1 Macs
  • install: fix method=script install condition (#2668)
  • install: properly check for curl/wget
  • install script: Add --no-pager option to git branch (#2637)

Refactors

  • create nvm_normalize_lts helper
  • [shellcheck] apply v0.8.0 updates

Docs

  • [readme] Balance the if statement in bash example (#2658)
  • [readme] Describe another failure case for installing node versions from source on mac arm64 machines (#2653)

Tests

  • [actions] add step security runner (#2659)
  • [Tests] update test mocks
  • [Tests] nvm_get_download_slug: add unit tests (#2657, #2232)
  • [Tests] fix windows WSL tests
  • [Dev Deps] update doctoc, markdown-link-check
nvm - v0.39.0

Published by ljharb about 3 years ago

New Stuff

  • maybe support Windows with WSL, MSYS, Cygwin (#2391)

Fixes

  • nvm install-latest-npm: ensure npm 8 does not install on unsupported nodes
  • nvm_die_on_prefix: filter prefixed env vars on name only, ignoring values (#2368)
  • set -a: when this option is set, some sh shells break
  • bash_completion: be robust when cd is overridden (#2585)
  • nvm_die_on_prefix: avoid grepping env functions in bash (2dad0455ec61e2842f8d0820bae40114a343ae3b, #2606)
  • reinstall-packages: handle global symlink locations properly
  • nvm_ls_remote_index_tab: handle long version lists (#2581)
  • nvm ls/nvm alias/nvm_list_aliases: zsh: when no LTS aliases, no error
  • install: Detect correct profile based on $SHELL var (#2556)
  • nvm_get_arch: suppress error output if /sbin does not exist
  • bash_completion: check if compinit is called before calling it (#2490)
  • nvm_get_arch: Rasbperry Pi: armv7l with arm64 kernel, get correct arch (#2469)
  • install script: check the proper version; fetch tags also (#9)

Robustness

  • avoid IFS shenanigans: quote arg count/return codes

Refactors

  • Use awk for path stripping (#1360)
  • [shellcheck] disable additional -x warning from v0.7.2
  • [shellcheck] update for new warnings in v0.7.2

Dockerfile

  • Update dated base image from Ubuntu 16.04 to 18.04 (#2571)

Docs

  • [readme] link "Windows WSL" down to the "important notes" section (#2502)
  • [readme] Add bash_completion in "manual install" section (#2620)
  • [readme] Use absolute URL for #606 in README.md (#1656)
  • [readme] Add quick intro to nvm (#1343)
  • [readme] Add info to restart bash if verification not working in verification section (#1749)
  • [readme] Avoid infinite loop in cdnvm() (#2605)
  • [readme] remove duplicate word 'run' (#2609)
  • [readme] updated automatic call script for bash (#2604)
  • [readme] fixed small typo afew to a few (#2517)
  • [readme] fix typo regarding docker image base in Dockerfile (#2573)
  • [readme] move License and Copyright notice sections to the bottom
  • [readme] remove redundant "license" section text in favor of LICENSE.md
  • [readme] Improve README about Macs with M1 chips (#2479)

Meta Stuff

  • add project charter and governance
  • add OpenJS Foundation copyright notices/links
  • add SECURITY.md

Tests

  • use a matrix on the nvm install-latest-npm tests
  • blacklist expired LetsEncrypt CA (#2623)
  • Add markdown-link-check script
  • nvm install-latest-npm: node < 0.10 breaks with npm with dropped support for TLS < 1.2
  • Print shell version in Travis CI (#1471)
  • [actions] restrict permissions for GITHUB_TOKEN (#2584)
  • postcss v7.0.36 stopped working on node 0.10; downgrade to v4
  • update mocks
  • disable fail-fast
  • [actions] fix typo in dockerfile_lint job
  • [actions] use node/install instead of node/run
  • [actions] adjust shellcheck/windows tests to9 have a final "done" job
  • Add unit tests for nvm_is_version_installed
  • node-gyp v8 breaks a test

New Contributors

nvm - v0.38.0

Published by ljharb over 3 years ago

New Stuff

  • install: add parallel build support for openbsd (#2390)
  • install: add -b flag to skip building from source (#2439)
  • install script: Allow installation from other repository also for git method (#2401)
  • install script: Allow installation from other repository (#2394)

Fixes

  • exec: -- should stop argument parsing (#2354)
  • nvm_alias: ensure lts/-1 returns the one before lts/* (#2462)
  • install script: define nvm_echo
  • Fix potential unbound var error on nvm install (#2421)
  • avoid parse error with common omz global aliases, in nvm_print_color_code (#2365)
  • install script: sync nvm_download implementation from nvm.sh (#2406)
  • remove nvm_supports_source_options (#2402)
  • bash_completion: move compinit before bashcompinit (#2393)
  • relax $PREFIX checking, to accomodate npm exec
  • Use local variable when looping over args (#2377)
  • install: Ignore npm command under $NVM_DIR when checking for global modules (#2348)

Refactors

  • add nvm_install_binary_extract
  • add nvm_get_artifact_compression
  • fix silly shellcheck complaint

Docs

  • Add macOS troubleshooting instructions for M1 chip (#2416, #2436, #2232)
  • Update source command to include s in zsh (#2466)
  • Add nvs as one of the Windows alternatives (#2454)
  • add headings to certain sections (#2457)
  • add commands to help troubleshoot without closing the current shell (#2202)
  • update cdnvm implementation (#2442)
  • add install error tips (#2400)
  • quote asterisk in shell command on --latest-npm example (#2431)
  • Updated README.md to include homebrew unsecure dirs warning (#2388)
  • source ./nvm.sh instead of nvm.sh, for zsh (#2205)
  • add CODE_OF_CONDUCT.md

Tests

  • Rename some files to be more cross platform (#2397)
  • [actions] update workflows (#2427)
  • [Dev Deps] update dockerfile_lint, doctoc, eclint, replace, semver
  • ensure doctoc action fails when it should
  • update mocks
  • Add unit test for nvm_download
  • add nvm_grep to install script, fix tests (#2403
  • .npm is now cached by default (#2104)
  • release: clobber local tags
nvm - v0.37.2

Published by ljharb almost 4 years ago

Fixes

  • Revert "[Fix] nvm_die_on_prefix: only grep lines starting with env var name" (#2347, #2360, #2364, #2366)
nvm - v0.37.1

Published by ljharb almost 4 years ago

New Stuff

  • Added set-colors command (#2291, #2232)

Fixes

  • nvm_die_on_prefix: only grep lines starting with env var name (#2347)

Tests

  • Run fast test suite in clean environment (#2336)
  • partially migrate to Github Actions
  • Add shellcheck workflow (#2351)
  • Add release test workflow (#2355)
  • add "Allow Edits" workflow
  • switch Automatic Rebase workflow to pull_request_target event
nvm - v0.37.0

Published by ljharb almost 4 years ago

Major Performance Enhancement

  • use/nvm_die_on_prefix: replicate npm config algorithm and remove npm config call (#2317)

Fixes

  • nvm ls-remote: accept versions that end with a dot (#2310)
  • nvm_ls: zsh: unset markdirs and local_options (#2316)
  • nvm_die_on_prefix: use directory comparison rather than string (#2316)

Docs

  • improve nvm --help output (#2301)
  • [readme] bash shell integration: amend example (#2313)

Tests

  • Fix nvm_ls_current fast test (#2322)
  • Fix nvm unload fast test cleanup (#2332)
  • Drop deprecated sudo: option in TravisCI config (#2307)
nvm - v0.36.0

Published by ljharb about 4 years ago

v0.36.0

New Stuff

  • add nvm -v as an alias for nvm --version (#2270)
  • nvm deactivate/nvm which: add --silent
  • adding default and alias option to nvm install (#2274, #1929)
  • nvm_supports_xz: Add Mac/FreeBSD xz platform support checks (#2156)
  • add nvm_find_project_dir helper

Fixes

  • latest-npm: ensure npm 7 is not installed on node < 10
  • nvm_die_on_prefix: check that the prefix is inside the version dir, not just the nvm dir
  • nvm use: fix --silent when version is omitted
  • ensure --help is intercepted on any command (#2277)
  • --help: Add more examples (#2272)
  • install: improved arg parsing around --reinstall-packages-from (#1762)
  • reinstall-packages: do not include unmet peer deps (#1948)
  • --help: explain more clearly that parameter is optional and can be provided by .nvmrc on nvm install, nvm use, nvm exec, and nvm run (#2242)
  • [Robustness] add command to xargs/rm in nvm_get_default_packages (#2281)
  • [debug] add whoami output
  • [performance] nvm_auto: only call nvm_ls_current in use mode (#2286)

Refactors

  • [Refactor] add nvm_get_checksum_binary; use it in nvm debug
  • [Refactor] remove unused nvm_checksum function
  • [Refactor] Rename solaris and iojs helper functions to be nvm_ prefixed (#2213)
  • [Refactor] nvm run/nvm exec: use NVM_SILENT consistently internally (#2279)

Dockerfile

  • [dockerfile] Add missing apt package locales (#2306)
  • [dockerfile] Remove ShellCheck Segmentation fault workaround (#2305)
  • [dockerfile] Update ShellCheck download URL in Dockerfile (#2304, #2232)
  • [dockerfile] Update Dockerfile base image to Ubuntu 16.04, cc #2008 (#2187)

Docs

  • [readme] fix LTS upgrade command (#2294)
  • [readme] update autocompletion output examples
  • [readme] Mention problem with windows cmd echo (#2282)
  • [readme] Add documentation for LTS updates which reinstall existing packages (#2271)
  • [readme] Fix fish load_nvm function (#2252)
  • [readme] Update macOS troubleshooting w/ 10.15 zsh default (#2248)
  • [readme] Update install instructions troubleshooting (#2225)
  • [readme] Syntax highlight for Ansible task example in README.md (#2228)
  • [readme] Update README for environment variables (#2159)
  • [readme] Stop removing spaces from nvm_path (#2235)
  • [readme] include deeper integration instructions for fish (#2208)
  • [patch] Update docs and add warning for 'nvm is not compatible with the npm config "prefix" option' edgecase error on Mac OS (#2263)

Tests

  • pin postcss to v7
  • Source nvm.sh before defining FILE (#2182)

Meta Stuff

  • fix TOC action
  • add actions: Automatic Rebase for PRs, auto-update-TOC for push
nvm - v0.35.3

Published by ljharb over 4 years ago

v0.35.3

New

  • add lts/-1 etc, to point to an LTS line relative to "latest"
  • use: set NVM_INC to expose the node include path
  • uninstall: add NVM_DEBUG to print out a filename as its permissions are checked

Fixes

  • nvm ls-remote: properly label latest LTS versions instead of just the latest one in the filter

Docs

  • [readme] restore broken anchor
  • [readme] add nvm intro
  • Improve readme clarity and troubleshooting (#2125)
  • Fix small typo in README (#2130)

Tests

  • update mocks
  • fix update mocks script
  • update test mocks
  • try to make nvm unload test more robust
  • ensure nvm unload unsets env vars too
nvm - v0.35.2

Published by ljharb almost 5 years ago

Fixes

  • if a prefix env var is set (as in npm run), but is correct, do not fail (#2106)
  • allow nvm unalias x when x is a default alias, but shadowed (#2122)

Tests

  • pin david to v11

Docs

  • [readme] Fix a typo (#2121)

Meta

  • create FUNDING.yml
nvm - v0.35.1

Published by ljharb almost 5 years ago

Fixes

  • install-latest-npm: npm v6.10 breaks on node v6.0, v6.1, and v9.0-v9.2
  • nvm use: improve help output with bare nvm use and no .nvmrc

Docs

  • Add description if instructions don't work; make install instructions more readable (#2112)
nvm - v0.35.0

Published by ljharb about 5 years ago

New Stuff

  • nvm ls: add --no-alias to suppress alias output

Fixes

  • set -u: Add default empty value for $NVM_NO_ALIAS (#2054, #2047)
  • Determine correct sub directory if XDG_CONFIG_HOME is set (#2035)
  • Set $NVM_DIR to ".nvm" instead of "nvm" (#2069, #2033)
  • default_packages: work when the file lacks a trailing newline
  • install: Add missing io.js installation message (#1989)
  • Make installation less restrictive when NVM_DIR is set (#1986)
  • Enhance nvm debug for different environments (#1654)
  • nvm_supports_source_options: work around a bug in bash 3.2
  • install: error out when an argument has ---
  • attempt to fix a bug in bash 3.2, fixed in 4.4, that improperly exits on -e in a test.
  • nvm ls: --no-colors: system: print an asterisk

Refactors

  • add nvm_stdout_is_terminal helper (#2012, #2007)
  • extract “get default packages” logic to nvm_get_default_packages
  • nvm.sh: make coding style more consistent (#1819)

Docs

  • Fix bash auto-use nvm command (#2086)
  • Updated note about Windows (#2037)
  • sync node release schedule url (#2001)
  • clarify how to specify default packages (#1981)
  • clean up formatting in readme (#2038)
  • clean up a bit (#1627)
  • Add --latest-npm info to Migrating global packages section (#1970)
  • Set $NVM_DIR to ".nvm" instead of "nvm" (#2069, #2033)
  • update bash cdnvm script to properly handle aliases (#2017)
  • Add note about what version of node new shells run with (#2003)
  • --help: consolidate some help output
  • README.md: mention --no-colors option (#2004)
  • nvm --help: add --no-colors and --no-alias
  • add version number to nvm —help output (#1993)
  • add “update” terminology to installation section
  • unalias: add more specific error message for builtin aliases (#1992)

Tests

  • jspm v2 beta started breaking tests; pin to < v2
  • use rimraf over rmdir in teardowns (#2010)
  • update dist from trusty to xenial (#2008)
  • nvm_command_info: make error output more helpful
  • nvm ls: ensure nvm alias is called
  • add more checks to make_fake_* helpers
  • fix fake node versions
  • Improve syntax in "test/installation_iojs/nvm install v1 works" (#1990)
  • [shellcheck] remove unnecessary overrides
  • [shellcheck] add overrides

Dockerfile

  • install shellcheck v0.6.0 in Dockerfile (#1836)
  • add libssl-dev to Docker image (#1835)

Meta

  • add copyright line to license file
  • update repo links to point to org
nvm - v0.34.0

Published by ljharb almost 6 years ago

New Stuff

  • Support --no-progress for nvm install (#1422)
  • install.sh: allow user to explicitly opt out of nvm adding the source string (#1804)
  • Respect previously nvm-loaded node version when sourcing (#1315)
  • add support for $XDG_CONFIG_HOME (#1888)
  • bash_completion: Add support for ZSH_DISABLE_COMPFIX flag (#1911)

Fixes

  • Improve .nvmrc reading process (#1740)
  • nvm debug: Fix sed syntax error in nvm_command_info (#1528)
  • Remove $NVM_DIR trailing slash automatically (#1734)
  • install -s: zsh: ensure shwordsplit opt is set (#1719)
  • ls-remote: fix issues in zsh when using a mirror with a ton of entries (#1818)
  • Improve nvm_is_version_installed to check for a node executable instead of root dir (#1824)
  • use: Prepend instead of changing if shadowed by system dirs (#1830)
  • Improve and update Dockerfile (#1861, #1863)
  • install.sh: Print an error and exit the script if $METHOD is set to something unexpected (#1917)
  • Allow zsh users to have the nomatch option set (#1938)
  • avoid unbound variable (#1949)

Refactors

  • Speedup nvm_list_aliases (#1517)
  • bash_completion: Improve coding style (#1816)
  • [shellcheck] use { …; } instead of (…) to group test commands (#1825)
  • [shellcheck] quote variables in for loops to avoid unintentional expansion
  • [shellcheck] ignore SC2230 errors
  • [shellcheck] Use -n/-z instead of ! -z/! -n condition (#1955)

Tests

  • add nvm install-latest-npm tests for all node versions
  • fix failing tests on master due to npm registry SSL changes
  • Enable ccache on Travis CI to speed up compilation (#1947)
  • print out shellcheck version
  • avoid using shopt in zsh

Docs

  • add --tags to git fetch in manual upgrade (#1793)
  • fix failing if check in autoload script (#1821)
  • Grammar update (#1822)
  • fix for .nvmrc script (#1823)
  • add --no-use option to installation (#1839, #1840, #1862)
  • add instructions for installing a specific version (#1901)
  • Added fish nvm (#1926)
  • Add section on automatic nvm use in Bash (#1865)
  • improve instructions for manual install (#1930)
  • update README to fix docker run command flag order (#1925)
  • Improve md file syntax (#1864)
  • Add Ansible task example (#1964)
  • Improve indent of output block in GitHub Issue template (#1967)
  • fixing cdnvm on .bashrc (#1971)
  • Improve phrasing of 'nvm current' (#1974)
nvm - v0.33.11

Published by ljharb over 6 years ago

Fix

  • install-latest-npm: node v4.5 and v4.6 work on npm v5.4.1, but not v5.4.2
nvm - v0.33.10

Published by ljharb over 6 years ago

Fix

  • install-latest-npm: npm 6 is out, and requires node 6 or higher