Commit Graph

1853 Commits

Author SHA1 Message Date
Mário Feroldi 8d97975bc3
Make nvm visible to shell children
Shell functions are not automatically exported when declared, which
turned out to be problematic when sourcing the `nvm.sh` file from a
login shell. Non-login shells, which are children of the login shell,
do not see the `nvm` function when it's sourced from `~/.profile` and
other similar profile files.

Take the following code as an example (using bash):

    $ foo() { echo 1; } # in login shell
    $ foo
    1
    $ bash # in non-login shell now
    $ foo
    bash: foo: command not found

`foo` is not seen by the second bash instance, even though it has been
declared by its parent process.

One of the solutions is to export `foo` right after declaring it by
doing `export -f NAME`:

    $ foo() { echo 1; } # in login shell
    $ export -f foo
    $ bash # in non-login shell now
    $ foo
    1

This commit does the same to the `nvm` function and its dependencies.
2019-11-19 15:43:46 -03:00
Jordan Harband 73a513c389
[Fix] allow `nvm unalias x` when `x` is a default alias, but shadowed
Fixes #2122.
2019-11-12 11:16:08 -08:00
awthwathje 04ad1b528c
[readme] Fix a typo 2019-11-08 10:24:16 +01:00
Jordan Harband 1c8e59130f [meta] create FUNDING.yml 2019-11-05 12:05:09 -08:00
Jordan Harband 28bc2fd991
v0.35.1 2019-11-03 10:03:31 -08:00
Jordan Harband 100861d529
[Fix] `install-latest-npm`: `npm` `v6.10` breaks on `node` `v6.0`, `v6.1`, and `v9.0`-`v9.2` 2019-11-02 20:53:18 -07:00
Marit Iren 1eca354233
[Docs] Add description if instructions don't work; make install instructions more readable 2019-10-20 17:08:29 +02:00
Guido Bouman 0a4e6f2b70
[meta] Update ISSUE_TEMPLATE.md
Remove the need to indent terminal output by using headings instead of a list.
Simplify formulation of steps
2019-10-08 15:27:53 +02:00
Jordan Harband 94a72ae217
[Fix] `nvm use`: improve help output with bare `nvm use` and no `.nvmrc`
Closes #1914.
2019-10-08 14:40:17 -07:00
Jordan Harband 011810e721
v0.35.0 2019-10-02 00:05:28 -04:00
Darío Hereñú d48abff659
[Docs] clean up formatting in readme 2019-05-03 19:44:21 -03:00
Darío Hereñú 82037b41b1
[Docs] clean up a bit 2017-10-06 01:54:07 -03:00
Roman Isko 7b0a46eafb
[docker] add libssl-dev to Docker image 2018-06-18 10:33:12 +03:00
Roman Isko dcbecbf2c7
[shellcheck] install shellcheck v0.6.0 in Dockerfile 2018-06-14 10:45:01 +03:00
metasean 970cadf258
[Docs] Add `--latest-npm` info to Migrating global packages section
Adds the following information to the "Migrating global packages while installing" section:
- notification that the npm package is explicitly not updated when using the --reinstall-packages-from flag
- information about the --latest-npm flag
- recovery instructions if a user has already updated node with an incompatible npm version
2018-12-30 18:24:29 -07:00
Will Papper 3cc9525dce
[Docs] [Fix] Set $NVM_DIR to ".nvm" instead of "nvm"
- Operating system and version: Mac OS X Mojave

- What happened? $NVM_DIR was set to nvm

- What did you expect to happen? $NVM_DIR should be set to .nvm
I added the following line from the README to my .zshrc:
```
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
```

I couldn't figure out why nvm wasn't loading, until I realized that
`echo NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"` outputs `NVM_DIR=nvm`.

Changing the line to `export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/}.nvm"` fixed the problem. This outputs `NVM_DIR=.nvm` as expected. I tested this and the same behavior holds true in Bash as well.
2019-04-24 00:03:01 -07:00
Greg Smith 6537c91eb5
Fix bash auto-use nvm command
It was trying to read ./.nvmrc if you cd'ed into a subdirectory of the directory that has .nvmrc, which would give print `-bash: ./.nvmrc: No such file or directory` to stderr and potentially not doing the `nvm install`.
2019-08-09 14:38:37 -06:00
Jordan Harband 07b20d5008
[meta] add copyright line to license file 2019-07-17 10:48:23 -07:00
Sehrope Sarkuni 0b5bb5ccd8
[Fix] `set -u`: Add default empty value for `$NVM_NO_ALIAS`
Adds a default value for NVM_NO_ALIAS so that nvm ls does not error out when run
in a bash nounset/-u (no unset vars) environment.
2019-05-14 08:31:24 -04:00
Bastian Fuchs 45c1b84794
[Fix] Determine correct sub directory if XDG_CONFIG_HOME is set
With the environment variable XDG_CONFIG_HOME set, the installation
script uses the directory $XDG_CONFIG_HOME/nvm now. Before the change
the variable's value with "/nvm" cut off was used, which usually results
in an installation without any subdirectory.
2019-04-28 12:51:15 +02:00
Alfred Myers 3664744e3b
Updated note about Windows
There's a lot of old info around the interwebs.
Much stating nvm doesn't work in WSL.
2019-05-02 12:20:17 -03:00
Jordan Harband ee9e56582e
[Tests] `jspm` v2 beta started breaking tests; pin to < v2 2019-05-04 13:34:16 -07:00
Jordan Harband e7a5b7992b
[meta] update repo links to point to org 2019-04-24 16:08:34 -07:00
Daniel Li ff77ac17af
[Docs] update `bash` `cdnvm` script to properly handle aliases
- Only works for common aliases like `default`, `system`, `node`, `lts/*`, `iojs` etc.
 - Prevent unnecessary running of `nvm use`
2019-03-12 16:43:08 +00:00
Christopher Sahnwaldt 2410215b6a
[Refactor] add `nvm_stdout_is_terminal` helper 2019-02-24 00:03:19 +01:00
Christopher Sahnwaldt a1abfd1fe4
[Tests] use rimraf over `rmdir` in teardowns
- fix test 'Running "nvm ls" should display all installed versions.': only expect versions created by this test, but no versions created by other tests
2019-02-27 10:50:59 +01:00
Jordan Harband 43402df896
[Fix] `nvm_supports_source_options`: work around a bug in bash 3.2
See https://github.com/creationix/nvm/issues/1978#issuecomment-453480231

Fixes #1978.
2019-02-26 16:53:36 -08:00
Eric Lewis 1ede50cbae
[Docs] Add note about what version of node new shells run with.
Fixes #2000
2019-02-22 10:04:13 -05:00
Jordan Harband e0d87528f3
[shellcheck] remove unnecessary overrides 2019-02-24 23:04:13 -08:00
Refael Ackermann 924a175bd8
[Tests] update dist from trusty to xenial 2019-02-25 15:02:15 -05:00
Jordan Harband 9daf26f0a0
[Tests] `nvm_command_info`: make error output more helpful 2019-02-25 13:17:10 -08:00
Jordan Harband 226487d358
[Fix] `install`: error out when an argument has `---`
Fixes #1915.
2019-02-25 00:13:50 -08:00
Jordan Harband 216c24fba0
[Docs] `--help`: consolidate some help output 2019-02-24 22:57:06 -08:00
Christopher Sahnwaldt 930507dbbc
[Docs] README.md: mention --no-colors option 2019-02-23 09:53:56 +01:00
Jordan Harband 4c8ced736d
[Docs] `nvm --help`: add `--no-colors` and `--no-alias` 2019-02-24 00:04:40 -08:00
Jarvis Mercer - Amir Mohammad Safari (AMSL) 1f7f0c2d81
[Docs] add version number to `nvm —help` output 2019-01-27 04:13:12 +03:30
Jarvis Mercer - Amir Mohammad Safari (AMSL) 41eb40821b
[Docs] add “update” terminology to installation section 2019-01-26 01:00:43 +03:30
Jordan Harband c6740f5a6e
[New] `nvm ls`: add `--no-alias` to suppress alias output
Per https://github.com/creationix/nvm/issues/1792#issuecomment-466696504
2019-02-23 22:41:46 -08:00
Jordan Harband 04fdb2331b
[Tests] `nvm ls`: ensure `nvm alias` is called 2019-02-23 22:22:18 -08:00
Jordan Harband 58d0933f72
[Fix] attempt to fix a bug in bash 3.2, fixed in 4.4, that improperly exits on `-e` in a test.
See https://gist.github.com/ljharb/6e70a79ac5fcf11a8b9de654a88642aa for details.
2019-02-23 22:21:46 -08:00
Jordan Harband 2a5d2c06ff
[Tests] add more checks to make_fake_* helpers 2019-02-23 15:24:02 -08:00
Jordan Harband 2a513a1bc0
[Fix] `nvm_ls`: Reverts #1462 to fix io.js sorting.
<details>
<summary>Before this revert:</summary>

```sh
iojs-v3.3.1
iojs-v2.5.0
v0.6.21
v0.7.12
iojs-v1.8.4
v0.8.28
v0.9.12
v0.10.48
v0.11.16
v0.12.9
v0.12.18
v0.12.87
v4.9.1
v5.11.1
v5.12.0
v6.14.4
v6.16.0
v7.10.1
v8.6.0
v8.9.1
v8.10.0
v8.11.3
v8.11.4
v8.12.0
v8.13.0
v8.14.1
v8.15.0
v9.11.2
v10.0.0
v10.1.0
v10.2.1
v10.3.0
v10.4.1
v10.5.0
v10.6.0
v10.7.0
v10.8.0
v10.9.0
v10.10.0
v10.11.0
v10.12.0
v10.13.0
v10.14.2
v10.15.1
v11.0.0
v11.1.0
v11.2.0
v11.3.0
v11.4.0
v11.5.0
v11.6.0
v11.7.0
v11.8.0
v11.9.0
v11.10.0
```
</details>

<details>
<summary>After this revert:</summary>

```sh
v0.6.21
v0.7.12
v0.8.28
v0.9.12
v0.10.48
v0.11.16
v0.12.9
v0.12.18
v0.12.87
iojs-v1.8.4
iojs-v2.5.0
iojs-v3.3.1
v4.9.1
v5.11.1
v5.12.0
v6.14.4
v6.16.0
v7.10.1
v8.6.0
v8.9.1
v8.10.0
v8.11.3
v8.11.4
v8.12.0
v8.13.0
v8.14.1
v8.15.0
v9.11.2
v10.0.0
v10.1.0
v10.2.1
v10.3.0
v10.4.1
v10.5.0
v10.6.0
v10.7.0
v10.8.0
v10.9.0
v10.10.0
v10.11.0
v10.12.0
v10.13.0
v10.14.2
v10.15.1
v11.0.0
v11.1.0
v11.2.0
v11.3.0
v11.4.0
v11.5.0
v11.6.0
v11.7.0
v11.8.0
v11.9.0
v11.10.0
```
</details>

In other words, the sorting needs to happen *before* the `NVM_NODE_PREFIX` is removed.
2019-02-23 15:02:31 -08:00
Jordan Harband 48196d2436
[Tests] fix fake node versions 2019-02-23 14:47:49 -08:00
Jordan Harband 7f9220dbd8
[Fix] `nvm ls`: `--no-colors`: `system`: print an asterisk 2019-02-23 14:41:57 -08:00
jjangga0214 890fbb5581
Update README: sync node release schedule url 2019-02-15 11:11:01 +09:00
Jordan Harband e1bb44f712
[shellcheck] add overrides 2019-02-04 14:45:04 -08:00
Jordan Harband db19450caa
[Fix] `default_packages`: work when the file lacks a trailing newline
Fixes #1995.
2019-02-02 13:45:11 -08:00
Jordan Harband 5c117e6ab3
[Refactor] extract “get default packages” logic to `nvm_get_default_packages` 2019-02-01 13:27:18 -08:00
Lucas Kellner 02997b0753
[Docs] `unalias`: add more specific error message for builtin aliases 2019-01-23 16:39:57 -08:00
Peter Dave Hello cc0750eb5d
[Fix] `install`: Add missing io.js installation message
Fixes #1988
2019-01-22 15:46:29 +08:00