mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-09-04 11:38:21 +00:00
Compare commits
49 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
49abc9ce02 | ||
![]() |
15876280f7 | ||
![]() |
9f653cc196 | ||
![]() |
543b86c060 | ||
![]() |
ba01993ea6 | ||
![]() |
31e7d5b36a | ||
![]() |
17c68075e8 | ||
![]() |
3fcff872af | ||
![]() |
c07838fcc0 | ||
![]() |
fe1ed37520 | ||
![]() |
ae1c488fe1 | ||
![]() |
d9662f138f | ||
![]() |
071323847c | ||
![]() |
b7a93be02e | ||
![]() |
3543cd5d2f | ||
![]() |
d7035c5e61 | ||
![]() |
1f679fc055 | ||
![]() |
c37dbbecb4 | ||
![]() |
f81b6d6b7b | ||
![]() |
d57f7ea54a | ||
![]() |
759f86f946 | ||
![]() |
60c2f3705e | ||
![]() |
657192dd27 | ||
![]() |
98e40a8da5 | ||
![]() |
2da44f90d2 | ||
![]() |
88a50780fc | ||
![]() |
9419794b19 | ||
![]() |
b4151e1446 | ||
![]() |
f2d31b0458 | ||
![]() |
0b41352210 | ||
![]() |
be5e8de0c8 | ||
![]() |
3ef937a64e | ||
![]() |
a21b2e6962 | ||
![]() |
cc090f4476 | ||
![]() |
c31b072145 | ||
![]() |
7bce6c6c68 | ||
![]() |
fb2f1ac627 | ||
![]() |
bc3840b6f3 | ||
![]() |
6b8fd19d76 | ||
![]() |
c1ef31df53 | ||
![]() |
3b67b3b9bb | ||
![]() |
83466446ce | ||
![]() |
3214caa4ec | ||
![]() |
67f2ee82ca | ||
![]() |
1f13f15620 | ||
![]() |
fe044c5e3b | ||
![]() |
3cfa1ed4e1 | ||
![]() |
d78722b284 | ||
![]() |
4c475b2767 |
@@ -4,23 +4,22 @@
|
||||
|
||||
First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work.
|
||||
|
||||
Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are not supported nor developed by us:
|
||||
Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us:
|
||||
- [nvmw](https://github.com/hakobera/nvmw)
|
||||
- [nvm-windows](https://github.com/coreybutler/nvm-windows)
|
||||
|
||||
Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Two alternatives exist, which are not supported nor developed by us:
|
||||
- [nvm-fish-wrapper](https://github.com/passcod/nvm-fish-wrapper)
|
||||
- [nvm-fish](https://github.com/Alex7Kom/nvm-fish) (does not support iojs)
|
||||
Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). An alternative exists, which is neither supported nor developed by us:
|
||||
- [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell
|
||||
|
||||
### Install script
|
||||
|
||||
To install you could use the [install script][2] using cURL:
|
||||
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.3/install.sh | bash
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.0/install.sh | bash
|
||||
|
||||
or Wget:
|
||||
|
||||
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.3/install.sh | bash
|
||||
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.26.0/install.sh | bash
|
||||
|
||||
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`).</sub>
|
||||
|
||||
@@ -76,10 +75,27 @@ In place of a version pointer like "0.10", you can use the special default alias
|
||||
nvm use stable
|
||||
nvm run unstable --version
|
||||
|
||||
If you want to install a new version of Node.js and migrate npm packages from a previous version:
|
||||
|
||||
nvm install node --reinstall-packages-from=node
|
||||
|
||||
This will first use "nvm version node" to identify the current version you're migrating packages from. Then it resolves the new version to install from the remote server and installs it. Lastly, it runs "nvm reinstall-packages" to reinstall the npm packages from your prior version of Node to the new one.
|
||||
|
||||
You can also install and migrate npm packages from specific versions of Node like this:
|
||||
|
||||
nvm install v0.10.40 --reinstall-packages-from=0.10.39
|
||||
nvm install v0.12.7 --reinstall-packages-from=0.12.6
|
||||
|
||||
If you want to install [io.js](https://github.com/iojs/io.js/):
|
||||
|
||||
nvm install iojs
|
||||
|
||||
If you want to install a new version of io.js and migrate npm packages from a previous version:
|
||||
|
||||
nvm install iojs --reinstall-packages-from=iojs
|
||||
|
||||
The same guidelines mentioned for migrating npm packages in Node.js are applicable to io.js.
|
||||
|
||||
If you want to use the system-installed version of node, you can use the special default alias "system":
|
||||
|
||||
nvm use system
|
||||
@@ -220,7 +236,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But
|
||||
nvm install -s 0.8.6
|
||||
|
||||
[1]: https://github.com/creationix/nvm.git
|
||||
[2]: https://github.com/creationix/nvm/blob/v0.25.3/install.sh
|
||||
[2]: https://github.com/creationix/nvm/blob/v0.26.0/install.sh
|
||||
[3]: https://travis-ci.org/creationix/nvm
|
||||
[Urchin]: https://github.com/scraperwiki/urchin
|
||||
[Fish]: http://fishshell.com
|
||||
|
@@ -57,7 +57,7 @@ __nvm_aliases ()
|
||||
declare aliases
|
||||
aliases=""
|
||||
if [ -d $NVM_DIR/alias ]; then
|
||||
aliases="`cd $NVM_DIR/alias && ls`"
|
||||
aliases="`cd $NVM_DIR/alias && command ls`"
|
||||
fi
|
||||
echo "${aliases}"
|
||||
}
|
||||
|
47
install.sh
47
install.sh
@@ -13,7 +13,7 @@ if [ -z "$NVM_DIR" ]; then
|
||||
fi
|
||||
|
||||
nvm_latest_version() {
|
||||
echo "v0.25.3"
|
||||
echo "v0.26.0"
|
||||
}
|
||||
|
||||
#
|
||||
@@ -117,16 +117,38 @@ install_nvm_as_script() {
|
||||
# Otherwise, an empty string is returned
|
||||
#
|
||||
nvm_detect_profile() {
|
||||
if [ -f "$PROFILE" ]; then
|
||||
echo "$PROFILE"
|
||||
elif [ -f "$HOME/.bashrc" ]; then
|
||||
echo "$HOME/.bashrc"
|
||||
elif [ -f "$HOME/.bash_profile" ]; then
|
||||
echo "$HOME/.bash_profile"
|
||||
elif [ -f "$HOME/.zshrc" ]; then
|
||||
echo "$HOME/.zshrc"
|
||||
elif [ -f "$HOME/.profile" ]; then
|
||||
echo "$HOME/.profile"
|
||||
|
||||
local DETECTED_PROFILE
|
||||
DETECTED_PROFILE=''
|
||||
local SHELLTYPE
|
||||
SHELLTYPE="$(basename /$SHELL)"
|
||||
|
||||
if [ $SHELLTYPE = "bash" ]; then
|
||||
if [ -f "$HOME/.bashrc" ]; then
|
||||
DETECTED_PROFILE="$HOME/.bashrc"
|
||||
elif [ -f "$HOME/.bash_profile" ]; then
|
||||
DETECTED_PROFILE="$HOME/.bash_profile"
|
||||
fi
|
||||
elif [ $SHELLTYPE = "zsh" ]; then
|
||||
DETECTED_PROFILE="$HOME/.zshrc"
|
||||
fi
|
||||
|
||||
if [ -z $DETECTED_PROFILE ]; then
|
||||
if [ -f "$PROFILE" ]; then
|
||||
DETECTED_PROFILE="$PROFILE"
|
||||
elif [ -f "$HOME/.profile" ]; then
|
||||
DETECTED_PROFILE="$HOME/.profile"
|
||||
elif [ -f "$HOME/.bashrc" ]; then
|
||||
DETECTED_PROFILE="$HOME/.bashrc"
|
||||
elif [ -f "$HOME/.bash_profile" ]; then
|
||||
DETECTED_PROFILE="$HOME/.bash_profile"
|
||||
elif [ -f "$HOME/.zshrc" ]; then
|
||||
DETECTED_PROFILE="$HOME/.zshrc"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z $DETECTED_PROFILE ]; then
|
||||
echo "$DETECTED_PROFILE"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -228,7 +250,8 @@ nvm_do_install() {
|
||||
|
||||
nvm_check_global_modules
|
||||
|
||||
echo "=> Close and reopen your terminal to start using nvm"
|
||||
. $NVM_DIR/nvm.sh
|
||||
echo "=> You can now start using nvm"
|
||||
nvm_reset
|
||||
}
|
||||
|
||||
|
306
nvm.sh
306
nvm.sh
@@ -62,7 +62,7 @@ nvm_has_system_iojs() {
|
||||
|
||||
nvm_print_npm_version() {
|
||||
if nvm_has "npm"; then
|
||||
npm --version 2>/dev/null | command xargs printf " (npm v%s)"
|
||||
echo " (npm v$(npm --version 2>/dev/null))"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -91,9 +91,6 @@ fi
|
||||
if [ -z "$NVM_IOJS_ORG_MIRROR" ]; then
|
||||
export NVM_IOJS_ORG_MIRROR="https://iojs.org/dist"
|
||||
fi
|
||||
if [ -z "$NVM_IOJS_ORG_VERSION_LISTING" ]; then
|
||||
export NVM_IOJS_ORG_VERSION_LISTING="$NVM_IOJS_ORG_MIRROR/index.tab"
|
||||
fi
|
||||
|
||||
nvm_tree_contains_path() {
|
||||
local tree
|
||||
@@ -201,10 +198,14 @@ nvm_ensure_version_installed() {
|
||||
local PROVIDED_VERSION
|
||||
PROVIDED_VERSION="$1"
|
||||
local LOCAL_VERSION
|
||||
local EXIT_CODE
|
||||
LOCAL_VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
EXIT_CODE="$?"
|
||||
local NVM_VERSION_DIR
|
||||
NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")"
|
||||
if [ ! -d "$NVM_VERSION_DIR" ]; then
|
||||
if [ "_$EXIT_CODE" = "_0" ]; then
|
||||
NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")"
|
||||
fi
|
||||
if [ "_$EXIT_CODE" != "_0" ] || [ ! -d "$NVM_VERSION_DIR" ]; then
|
||||
VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" >&2
|
||||
@@ -303,7 +304,8 @@ nvm_is_valid_version() {
|
||||
return 0
|
||||
fi
|
||||
case "$1" in
|
||||
"$(nvm_iojs_prefix)" | "$(nvm_node_prefix)")
|
||||
"$(nvm_iojs_prefix)" | \
|
||||
"$(nvm_node_prefix)")
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
@@ -537,7 +539,7 @@ nvm_ls() {
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
local NVM_VERSION_DIR_IOJS
|
||||
NVM_VERSION_DIR_IOJS="$(nvm_version_dir iojs)"
|
||||
NVM_VERSION_DIR_IOJS="$(nvm_version_dir "$NVM_IOJS_PREFIX")"
|
||||
local NVM_VERSION_DIR_NEW
|
||||
NVM_VERSION_DIR_NEW="$(nvm_version_dir new)"
|
||||
local NVM_VERSION_DIR_OLD
|
||||
@@ -631,7 +633,8 @@ nvm_ls() {
|
||||
| command sort -s -t- -k1.1,1.1 \
|
||||
| command sed "
|
||||
s/^\($NVM_IOJS_PREFIX\)\./\1-/;
|
||||
s/^$NVM_NODE_PREFIX\.//")"
|
||||
s/^$NVM_NODE_PREFIX\.//" \
|
||||
)"
|
||||
fi
|
||||
|
||||
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
|
||||
@@ -680,18 +683,31 @@ nvm_ls_remote() {
|
||||
}
|
||||
|
||||
nvm_ls_remote_iojs() {
|
||||
nvm_ls_remote_iojs_org std "$NVM_IOJS_ORG_MIRROR" "$1"
|
||||
}
|
||||
|
||||
nvm_ls_remote_iojs_org() {
|
||||
local PREFIX
|
||||
if [ "_$1" = "_std" ]; then
|
||||
PREFIX="$(nvm_iojs_prefix)"
|
||||
else
|
||||
echo "unknown type of io.js release" >&2
|
||||
return 4
|
||||
fi
|
||||
local MIRROR
|
||||
MIRROR="$2"
|
||||
local PATTERN
|
||||
PATTERN="$1"
|
||||
PATTERN="$3"
|
||||
local VERSIONS
|
||||
if [ -n "$PATTERN" ]; then
|
||||
PATTERN="$(nvm_ensure_version_prefix $(nvm_strip_iojs_prefix "$PATTERN"))"
|
||||
else
|
||||
PATTERN=".*"
|
||||
fi
|
||||
VERSIONS="$(nvm_download -L -s $NVM_IOJS_ORG_VERSION_LISTING -o - \
|
||||
VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \
|
||||
| command sed "
|
||||
1d;
|
||||
s/^/$(nvm_iojs_prefix)-/;
|
||||
s/^/$PREFIX-/;
|
||||
s/[[:blank:]].*//" \
|
||||
| command grep -w "$PATTERN" \
|
||||
| command sort)"
|
||||
@@ -768,7 +784,9 @@ nvm_print_implicit_alias() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! nvm_validate_implicit_alias "$2"; then
|
||||
local NVM_IMPLICIT
|
||||
NVM_IMPLICIT="$2"
|
||||
if ! nvm_validate_implicit_alias "$NVM_IMPLICIT"; then
|
||||
return 2
|
||||
fi
|
||||
|
||||
@@ -779,12 +797,14 @@ nvm_print_implicit_alias() {
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
local NVM_COMMAND
|
||||
local NVM_ADD_PREFIX_COMMAND
|
||||
local LAST_TWO
|
||||
case "$2" in
|
||||
"$NVM_IOJS_PREFIX")
|
||||
case "$NVM_IMPLICIT" in
|
||||
"$NVM_IOJS_PREFIX" | "$NVM_IOJS_RC_PREFIX")
|
||||
NVM_COMMAND="nvm_ls_remote_iojs"
|
||||
NVM_ADD_PREFIX_COMMAND="nvm_add_iojs_prefix"
|
||||
if [ "_$1" = "_local" ]; then
|
||||
NVM_COMMAND="nvm_ls iojs"
|
||||
NVM_COMMAND="nvm_ls "$NVM_IMPLICIT""
|
||||
fi
|
||||
|
||||
ZHS_HAS_SHWORDSPLIT_UNSET=1
|
||||
@@ -794,7 +814,7 @@ nvm_print_implicit_alias() {
|
||||
fi
|
||||
|
||||
local NVM_IOJS_VERSION
|
||||
NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IOJS_PREFIX"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)"
|
||||
NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)"
|
||||
local EXIT_CODE
|
||||
EXIT_CODE="$?"
|
||||
|
||||
@@ -802,7 +822,7 @@ nvm_print_implicit_alias() {
|
||||
unsetopt shwordsplit
|
||||
fi
|
||||
|
||||
echo "$(nvm_add_iojs_prefix "$NVM_IOJS_VERSION")"
|
||||
echo "$($NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION")"
|
||||
return $EXIT_CODE
|
||||
;;
|
||||
"$NVM_NODE_PREFIX")
|
||||
@@ -902,10 +922,19 @@ nvm_ensure_default_set() {
|
||||
}
|
||||
|
||||
nvm_install_iojs_binary() {
|
||||
local NVM_IOJS_TYPE
|
||||
NVM_IOJS_TYPE="$1"
|
||||
local MIRROR
|
||||
if [ "_$NVM_IOJS_TYPE" = "_std" ]; then
|
||||
MIRROR="$NVM_IOJS_ORG_MIRROR"
|
||||
else
|
||||
echo "unknown type of io.js release" >&2
|
||||
return 4
|
||||
fi
|
||||
local PREFIXED_VERSION
|
||||
PREFIXED_VERSION="$1"
|
||||
PREFIXED_VERSION="$2"
|
||||
local REINSTALL_PACKAGES_FROM
|
||||
REINSTALL_PACKAGES_FROM="$2"
|
||||
REINSTALL_PACKAGES_FROM="$3"
|
||||
|
||||
if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then
|
||||
echo 'nvm_install_iojs_binary requires an iojs-prefixed version.' >&2
|
||||
@@ -925,8 +954,8 @@ nvm_install_iojs_binary() {
|
||||
if [ -n "$NVM_OS" ]; then
|
||||
if nvm_binary_available "$VERSION"; then
|
||||
t="$VERSION-$NVM_OS-$(nvm_get_arch)"
|
||||
url="$NVM_IOJS_ORG_MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz"
|
||||
sum="$(nvm_download -L -s $NVM_IOJS_ORG_MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')"
|
||||
url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz"
|
||||
sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')"
|
||||
local tmpdir
|
||||
tmpdir="$NVM_DIR/bin/iojs-${t}"
|
||||
local tmptarball
|
||||
@@ -1025,6 +1054,12 @@ nvm_install_node_source() {
|
||||
local ADDITIONAL_PARAMETERS
|
||||
ADDITIONAL_PARAMETERS="$2"
|
||||
|
||||
local NVM_ARCH
|
||||
NVM_ARCH="$(nvm_get_arch)"
|
||||
if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then
|
||||
ADDITIONAL_PARAMETERS="--without-snapshot $ADDITIONAL_PARAMETERS"
|
||||
fi
|
||||
|
||||
if [ -n "$ADDITIONAL_PARAMETERS" ]; then
|
||||
echo "Additional options while compiling: $ADDITIONAL_PARAMETERS"
|
||||
fi
|
||||
@@ -1091,6 +1126,43 @@ nvm_install_node_source() {
|
||||
return $?
|
||||
}
|
||||
|
||||
nvm_match_version() {
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local PROVIDED_VERSION
|
||||
PROVIDED_VERSION="$1"
|
||||
case "_$PROVIDED_VERSION" in
|
||||
"_$NVM_IOJS_PREFIX" | "_io.js")
|
||||
echo "$(nvm_version $NVM_IOJS_PREFIX)"
|
||||
;;
|
||||
"_system")
|
||||
echo "system"
|
||||
;;
|
||||
*)
|
||||
echo "$(nvm_version "$PROVIDED_VERSION")"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
nvm_npm_global_modules() {
|
||||
local NPMLIST
|
||||
local VERSION
|
||||
VERSION="$1"
|
||||
if [ "_$VERSION" = "_system" ]; then
|
||||
NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 2> /dev/null | command tail -n +2)
|
||||
else
|
||||
NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command tail -n +2)
|
||||
fi
|
||||
|
||||
local INSTALLS
|
||||
INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs)
|
||||
|
||||
local LINKS
|
||||
LINKS="$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')"
|
||||
|
||||
echo "$INSTALLS //// $LINKS"
|
||||
}
|
||||
|
||||
nvm() {
|
||||
if [ $# -lt 1 ]; then
|
||||
nvm help
|
||||
@@ -1107,48 +1179,69 @@ nvm() {
|
||||
|
||||
case $1 in
|
||||
"help" )
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
echo
|
||||
echo "Node Version Manager"
|
||||
echo
|
||||
echo "Usage:"
|
||||
echo " nvm help Show this message"
|
||||
echo " nvm --version Print out the latest released version of nvm"
|
||||
echo " nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available"
|
||||
echo " nvm uninstall <version> Uninstall a version"
|
||||
echo " nvm use <version> Modify PATH to use <version>. Uses .nvmrc if available"
|
||||
echo " nvm run <version> [<args>] Run <version> with <args> as arguments. Uses .nvmrc if available for <version>"
|
||||
echo " nvm current Display currently activated version"
|
||||
echo " nvm ls List installed versions"
|
||||
echo " nvm ls <version> List versions matching a given description"
|
||||
echo " nvm ls-remote List remote versions available for install"
|
||||
echo " nvm deactivate Undo effects of \`nvm\` on current shell"
|
||||
echo " nvm alias [<pattern>] Show all aliases beginning with <pattern>"
|
||||
echo " nvm alias <name> <version> Set an alias named <name> pointing to <version>"
|
||||
echo " nvm unalias <name> Deletes the alias named <name>"
|
||||
echo " nvm reinstall-packages <version> Reinstall global \`npm\` packages contained in <version> to current version"
|
||||
echo " nvm unload Unload \`nvm\` from shell"
|
||||
echo " nvm which [<version>] Display path to installed node version. Uses .nvmrc if available"
|
||||
echo 'Note: <version> refers to any version-like string nvm understands. This includes:'
|
||||
echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)'
|
||||
echo " - default (built-in) aliases: $NVM_NODE_PREFIX, stable, unstable, $NVM_IOJS_PREFIX, system"
|
||||
echo ' - custom aliases you define with `nvm alias foo`'
|
||||
echo
|
||||
echo "Example:"
|
||||
echo " nvm install v0.10.32 Install a specific version number"
|
||||
echo " nvm use 0.10 Use the latest available 0.10.x release"
|
||||
echo " nvm run 0.10.32 app.js Run app.js using node v0.10.32"
|
||||
echo " nvm exec 0.10.32 node app.js Run \`node app.js\` with the PATH pointing to node v0.10.32"
|
||||
echo " nvm alias default 0.10.32 Set default node version on a shell"
|
||||
echo 'Usage:'
|
||||
echo ' nvm help Show this message'
|
||||
echo ' nvm --version Print out the latest released version of nvm'
|
||||
echo ' nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available'
|
||||
echo ' --reinstall-packages-from=<version> When installing, reinstall packages installed in <node|iojs|node version number>'
|
||||
echo ' nvm uninstall <version> Uninstall a version'
|
||||
echo ' nvm use [--silent] <version> Modify PATH to use <version>. Uses .nvmrc if available'
|
||||
echo ' nvm run <version> [<args>] Run <version> with <args> as arguments. Uses .nvmrc if available for <version>'
|
||||
echo ' nvm current Display currently activated version'
|
||||
echo ' nvm ls List installed versions'
|
||||
echo ' nvm ls <version> List versions matching a given description'
|
||||
echo ' nvm ls-remote List remote versions available for install'
|
||||
echo ' nvm version <version> Resolve the given description to a single local version'
|
||||
echo ' nvm version-remote <version> Resolve the given description to a single remote version'
|
||||
echo ' nvm deactivate Undo effects of `nvm` on current shell'
|
||||
echo ' nvm alias [<pattern>] Show all aliases beginning with <pattern>'
|
||||
echo ' nvm alias <name> <version> Set an alias named <name> pointing to <version>'
|
||||
echo ' nvm unalias <name> Deletes the alias named <name>'
|
||||
echo ' nvm reinstall-packages <version> Reinstall global `npm` packages contained in <version> to current version'
|
||||
echo ' nvm unload Unload `nvm` from shell'
|
||||
echo ' nvm which [<version>] Display path to installed node version. Uses .nvmrc if available'
|
||||
echo
|
||||
echo "Note:"
|
||||
echo " to remove, delete, or uninstall nvm - just remove ~/.nvm, ~/.npm, and ~/.bower folders"
|
||||
echo 'Example:'
|
||||
echo ' nvm install v0.10.32 Install a specific version number'
|
||||
echo ' nvm use 0.10 Use the latest available 0.10.x release'
|
||||
echo ' nvm run 0.10.32 app.js Run app.js using node v0.10.32'
|
||||
echo ' nvm exec 0.10.32 node app.js Run `node app.js` with the PATH pointing to node v0.10.32'
|
||||
echo ' nvm alias default 0.10.32 Set default node version on a shell'
|
||||
echo
|
||||
echo 'Note:'
|
||||
echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)'
|
||||
echo
|
||||
;;
|
||||
|
||||
"debug" )
|
||||
local ZHS_HAS_SHWORDSPLIT_UNSET
|
||||
if nvm_has "setopt"; then
|
||||
ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?)
|
||||
setopt shwordsplit
|
||||
fi
|
||||
echo >&2 "\$SHELL: $SHELL"
|
||||
echo >&2 "\$NVM_DIR: $(echo $NVM_DIR | sed "s#$HOME#\$HOME#g")"
|
||||
local NVM_DEBUG_OUTPUT
|
||||
for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g'
|
||||
do
|
||||
local NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND | sed "s#$NVM_DIR#\$NVM_DIR#g")"
|
||||
echo >&2 "$NVM_DEBUG_COMMAND: ${NVM_DEBUG_OUTPUT}"
|
||||
NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1 | sed "s#$NVM_DIR#\$NVM_DIR#g")"
|
||||
echo >&2 "$NVM_DEBUG_COMMAND: $NVM_DEBUG_OUTPUT"
|
||||
done
|
||||
if [ "_$ZHS_HAS_SHWORDSPLIT_UNSET" = "_1" ] && nvm_has "unsetopt"; then
|
||||
unsetopt shwordsplit
|
||||
fi
|
||||
return 42
|
||||
;;
|
||||
|
||||
@@ -1255,7 +1348,7 @@ nvm() {
|
||||
local NVM_INSTALL_SUCCESS
|
||||
# skip binary install if "nobinary" option specified.
|
||||
if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then
|
||||
if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
|
||||
if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
|
||||
NVM_INSTALL_SUCCESS=true
|
||||
elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
|
||||
NVM_INSTALL_SUCCESS=true
|
||||
@@ -1364,6 +1457,13 @@ nvm() {
|
||||
;;
|
||||
"use" )
|
||||
local PROVIDED_VERSION
|
||||
local NVM_USE_SILENT
|
||||
NVM_USE_SILENT=0
|
||||
if [ "$2" = '--silent' ]; then
|
||||
NVM_USE_SILENT=1
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ $# -eq 1 ]; then
|
||||
nvm_rc_version
|
||||
if [ -n "$NVM_RC_VERSION" ]; then
|
||||
@@ -1371,22 +1471,8 @@ nvm() {
|
||||
VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
fi
|
||||
else
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
PROVIDED_VERSION="$2"
|
||||
case "_$PROVIDED_VERSION" in
|
||||
"_$NVM_IOJS_PREFIX" | "_io.js")
|
||||
VERSION="$(nvm_version $NVM_IOJS_PREFIX)"
|
||||
;;
|
||||
"_system")
|
||||
VERSION="system"
|
||||
;;
|
||||
*)
|
||||
VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
;;
|
||||
esac
|
||||
VERSION="$(nvm_match_version "$PROVIDED_VERSION")"
|
||||
fi
|
||||
|
||||
if [ -z "$VERSION" ]; then
|
||||
@@ -1396,17 +1482,25 @@ nvm() {
|
||||
|
||||
if [ "_$VERSION" = '_system' ]; then
|
||||
if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then
|
||||
echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)"
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)"
|
||||
fi
|
||||
return
|
||||
elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then
|
||||
echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)"
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)"
|
||||
fi
|
||||
return
|
||||
else
|
||||
echo "System version of node not found." >&2
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "System version of node not found." >&2
|
||||
fi
|
||||
return 127
|
||||
fi
|
||||
elif [ "_$VERSION" = "_∞" ]; then
|
||||
echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2
|
||||
fi
|
||||
return 8
|
||||
fi
|
||||
|
||||
@@ -1443,9 +1537,13 @@ nvm() {
|
||||
command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current"
|
||||
fi
|
||||
if nvm_is_iojs_version "$VERSION"; then
|
||||
echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)"
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)"
|
||||
fi
|
||||
else
|
||||
echo "Now using node $VERSION$(nvm_print_npm_version)"
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "Now using node $VERSION$(nvm_print_npm_version)"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
"run" )
|
||||
@@ -1563,9 +1661,13 @@ nvm() {
|
||||
"ls-remote" | "list-remote" )
|
||||
local PATTERN
|
||||
PATTERN="$2"
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
local NVM_FLAVOR
|
||||
case "_$PATTERN" in
|
||||
"_$(nvm_iojs_prefix)" | "_$(nvm_node_prefix)" )
|
||||
"_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX" )
|
||||
NVM_FLAVOR="$PATTERN"
|
||||
PATTERN="$3"
|
||||
;;
|
||||
@@ -1575,7 +1677,7 @@ nvm() {
|
||||
NVM_LS_REMOTE_EXIT_CODE=0
|
||||
local NVM_LS_REMOTE_OUTPUT
|
||||
NVM_LS_REMOTE_OUTPUT=''
|
||||
if [ "_$NVM_FLAVOR" != "_$(nvm_iojs_prefix)" ]; then
|
||||
if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then
|
||||
NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN")
|
||||
NVM_LS_REMOTE_EXIT_CODE=$?
|
||||
fi
|
||||
@@ -1584,7 +1686,7 @@ nvm() {
|
||||
NVM_LS_REMOTE_IOJS_EXIT_CODE=0
|
||||
local NVM_LS_REMOTE_IOJS_OUTPUT
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=''
|
||||
if [ "_$NVM_FLAVOR" != "_$(nvm_node_prefix)" ]; then
|
||||
if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ]; then
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN")
|
||||
NVM_LS_REMOTE_IOJS_EXIT_CODE=$?
|
||||
fi
|
||||
@@ -1724,7 +1826,6 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
|
||||
return 2
|
||||
fi
|
||||
|
||||
local NPMLIST
|
||||
local VERSION
|
||||
if [ "_$PROVIDED_VERSION" = "_system" ]; then
|
||||
if ! nvm_has_system_node && ! nvm_has_system_iojs; then
|
||||
@@ -1732,44 +1833,67 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
|
||||
return 3
|
||||
fi
|
||||
VERSION="system"
|
||||
NPMLIST=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2)
|
||||
else
|
||||
VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2)
|
||||
fi
|
||||
|
||||
local NPMLIST
|
||||
NPMLIST="$(nvm_npm_global_modules "$VERSION")"
|
||||
local INSTALLS
|
||||
INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | command xargs)
|
||||
local LINKS
|
||||
INSTALLS="${NPMLIST%% //// *}"
|
||||
LINKS="${NPMLIST##* //// }"
|
||||
|
||||
echo "Copying global packages from $VERSION..."
|
||||
echo "Reinstalling global packages from $VERSION..."
|
||||
echo "$INSTALLS" | command xargs npm install -g --quiet
|
||||
|
||||
local LINKS
|
||||
LINKS=$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')
|
||||
|
||||
echo "Linking global packages from $VERSION..."
|
||||
set -f; IFS='
|
||||
' # necessary to turn off variable expansion except for newlines
|
||||
for LINK in $LINKS; do
|
||||
(cd "$LINK" && npm link)
|
||||
set +f; unset IFS # restore variable expansion
|
||||
if [ -n "$LINK" ]; then
|
||||
(cd "$LINK" && npm link)
|
||||
fi
|
||||
done
|
||||
set +f; unset IFS # restore variable expansion in case $LINKS was empty
|
||||
;;
|
||||
"clear-cache" )
|
||||
command rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null
|
||||
echo "Cache cleared."
|
||||
;;
|
||||
"version" )
|
||||
nvm_version $2
|
||||
nvm_version "$2"
|
||||
;;
|
||||
"version-remote" )
|
||||
nvm_remote_version "$2"
|
||||
;;
|
||||
"--version" )
|
||||
echo "0.25.3"
|
||||
echo "0.26.0"
|
||||
;;
|
||||
"unload" )
|
||||
unset -f nvm nvm_print_versions nvm_checksum \
|
||||
nvm_iojs_prefix nvm_node_prefix \
|
||||
nvm_add_iojs_prefix nvm_strip_iojs_prefix \
|
||||
nvm_is_iojs_version \
|
||||
nvm_ls_remote nvm_ls nvm_remote_version nvm_remote_versions \
|
||||
nvm_version nvm_rc_version \
|
||||
nvm_is_iojs_version nvm_is_alias \
|
||||
nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_iojs_org \
|
||||
nvm_ls nvm_remote_version nvm_remote_versions \
|
||||
nvm_install_iojs_binary nvm_install_node_binary \
|
||||
nvm_install_node_source \
|
||||
nvm_version nvm_rc_version nvm_match_version \
|
||||
nvm_ensure_default_set nvm_get_arch nvm_get_os \
|
||||
nvm_print_implicit_alias nvm_validate_implicit_alias \
|
||||
nvm_resolve_alias nvm_ls_current nvm_alias \
|
||||
nvm_binary_available nvm_prepend_path nvm_strip_path \
|
||||
nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \
|
||||
nvm_normalize_version nvm_is_valid_version \
|
||||
nvm_ensure_version_installed \
|
||||
nvm_version_path nvm_alias_path nvm_version_dir \
|
||||
nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \
|
||||
nvm_version_greater nvm_version_greater_than_or_equal_to \
|
||||
nvm_print_npm_version nvm_npm_global_modules \
|
||||
nvm_has_system_node nvm_has_system_iojs \
|
||||
nvm_download nvm_get_latest nvm_has nvm_get_latest \
|
||||
nvm_supports_source_options > /dev/null 2>&1
|
||||
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1
|
||||
;;
|
||||
@@ -1792,9 +1916,9 @@ if nvm_supports_source_options && [ "_$1" = "_--install" ]; then
|
||||
nvm install >/dev/null
|
||||
fi
|
||||
elif [ -n "$VERSION" ]; then
|
||||
nvm use "$VERSION" >/dev/null
|
||||
nvm use --silent "$VERSION" >/dev/null
|
||||
elif nvm_rc_version >/dev/null 2>&1; then
|
||||
nvm use >/dev/null
|
||||
nvm use --silent >/dev/null
|
||||
fi
|
||||
|
||||
} # this ensures the entire script is downloaded #
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nvm",
|
||||
"version": "0.25.3",
|
||||
"version": "0.26.0",
|
||||
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||
"directories": {
|
||||
"test": "test"
|
||||
@@ -31,7 +31,7 @@
|
||||
"homepage": "https://github.com/creationix/nvm",
|
||||
"devDependencies": {
|
||||
"replace": "^0.3.0",
|
||||
"semver": "^4.3.4",
|
||||
"semver": "^5.0.1",
|
||||
"urchin": "^0.0.5"
|
||||
}
|
||||
}
|
||||
|
@@ -18,5 +18,13 @@ EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.'
|
||||
EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE"
|
||||
|
||||
OUTPUT="$(nvm use --silent foo 2>&1)"
|
||||
EXPECTED_OUTPUT=''
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE"
|
||||
|
||||
cleanup;
|
||||
|
||||
|
@@ -18,5 +18,13 @@ EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.'
|
||||
EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE"
|
||||
|
||||
OUTPUT="$(nvm use --silent foo 2>&1)"
|
||||
EXPECTED_OUTPUT=''
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE"
|
||||
|
||||
cleanup;
|
||||
|
||||
|
@@ -8,10 +8,15 @@ nvm_has_system_node() { return 0; }
|
||||
nvm_print_npm_version() { return ' (npm v1.2.3)'; }
|
||||
EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)"
|
||||
[ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node"
|
||||
EXPECTED_OUTPUT=""
|
||||
[ "$(nvm use --silent system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node or --silent was not silent"
|
||||
|
||||
nvm_has_system_node() { return 1; }
|
||||
nvm_print_npm_version() { return ''; }
|
||||
EXPECTED_OUTPUT="System version of node not found."
|
||||
[ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found"
|
||||
nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found"
|
||||
EXPECTED_OUTPUT=""
|
||||
[ "$(nvm use --silent system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found or --silent was not silent"
|
||||
nvm use --silent system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found or --silent was not silent"
|
||||
|
||||
|
@@ -22,46 +22,80 @@ HOME="."
|
||||
|
||||
setup
|
||||
|
||||
#Let's force $SHELL to be bash
|
||||
SHELL="/bin/bash"
|
||||
|
||||
# $SHELL is set to bash and .bashrc is there, it must be detected
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$HOME/.bashrc: _$HOME/.bashrc\n" \
|
||||
echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc"
|
||||
|
||||
#Let's force $SHELL to be zsh
|
||||
SHELL="/usr/bin/zsh"
|
||||
|
||||
# $SHELL is set to zsh and .zshrc is there, it must be detected
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$HOME/.zshrc: _$HOME/.zshrc\n" \
|
||||
echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc"
|
||||
|
||||
|
||||
# if we unset shell it looks for the files
|
||||
unset SHELL
|
||||
|
||||
# $PROFILE points to a valid file, its path must be returned
|
||||
PROFILE="test_profile"
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$PROFILE" ] || die "nvm_detect_profile didn't pick \$PROFILE"
|
||||
[ "_$_PROFILE" = "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile didn't pick \$PROFILE"
|
||||
|
||||
# $PROFILE doesn't point to a valid file, its path must not be returned
|
||||
PROFILE="invalid_profile"
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" != "_$PROFILE" ] || die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file"
|
||||
[ "_$_PROFILE" != "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file"
|
||||
|
||||
|
||||
# Below are tests for when $PROFILE is undefined
|
||||
rm test_profile
|
||||
unset PROFILE
|
||||
|
||||
# It should favor .bashrc if file exists
|
||||
# It should favor .profile if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || die "nvm_detect_profile should have selected .bashrc"
|
||||
[ "_$_PROFILE" = "_$HOME/.profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have selected .profile"
|
||||
|
||||
rm .profile
|
||||
# Otherwise, it should favor .bashrc if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have selected .bashrc"
|
||||
|
||||
rm .bashrc
|
||||
# Otherwise, it should favor .bash_profile if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || die "nvm_detect_profile should have selected .bash_profile"
|
||||
[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have selected .bash_profile"
|
||||
|
||||
rm .bash_profile
|
||||
# Otherwise, it should favor .zshrc if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || die "nvm_detect_profile should have selected .zshrc"
|
||||
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have selected .zshrc"
|
||||
|
||||
rm .zshrc
|
||||
# Otherwise, it should favor .profile if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.profile" ] || die "nvm_detect_profile should have selected .profile"
|
||||
|
||||
rm .profile
|
||||
# It should be empty if none is found
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ -z "$_PROFILE" ] || die "nvm_detect_profile should have echo'ed an empty value"
|
||||
[ -z "$_PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have echo'ed an empty value"
|
||||
|
||||
|
||||
cleanup
|
||||
|
||||
|
@@ -16,8 +16,8 @@ nvm install iojs-v1.0.0
|
||||
|
||||
node --version | grep v1.0.0 > /dev/null || die "nvm install didn't use iojs-v1.0.0"
|
||||
|
||||
npm install -g is-nan@1.0.1 || die "npm install -g is-nan failed"
|
||||
npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed"
|
||||
npm install -g object-is@0.0.0 || die "npm install -g object-is failed"
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
|
||||
nvm ls iojs-1 | grep iojs-v1.0.0 > /dev/null || die "nvm ls iojs-1 didn't show iojs-v1.0.0"
|
||||
|
||||
@@ -28,5 +28,5 @@ nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 || die "nvm install
|
||||
nvm use iojs-1
|
||||
node --version | grep v1.0.1 > /dev/null || die "nvm use iojs-1 didn't use v1.0.1"
|
||||
|
||||
npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed"
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
|
||||
|
25
test/installation/node/install from source without V8 snapshot for ARM
Executable file
25
test/installation/node/install from source without V8 snapshot for ARM
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
NVM_TEST_VERSION=v0.10.7
|
||||
|
||||
# Remove the stuff we're clobbering.
|
||||
[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION
|
||||
|
||||
# Fake ARM arch
|
||||
nvm_get_arch() {
|
||||
echo "armv7l"
|
||||
}
|
||||
|
||||
# Install from source
|
||||
nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed"
|
||||
|
||||
# Check Install
|
||||
[ -d ../../../$NVM_TEST_VERSION ]
|
||||
node --version | grep $NVM_TEST_VERSION || "'node --version | grep $NVM_TEST_VERSION' failed"
|
||||
|
||||
# Check V8 snapshot isn't compiled
|
||||
node -p "if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }" | grep "no-snapshot" || "'node -p \"if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }\" | grep \"no-snapshot\"' failed"
|
@@ -18,8 +18,8 @@ nvm use 0.9.7
|
||||
|
||||
node --version | grep v0.9.7 > /dev/null || die "nvm use 0.9.7 failed"
|
||||
|
||||
npm install -g is-nan@1.0.1 || die "npm install -g is-nan failed"
|
||||
npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed"
|
||||
npm install -g object-is@0.0.0 || die "npm install -g object-is failed"
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
|
||||
nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7"
|
||||
|
||||
@@ -30,5 +30,5 @@ nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --re
|
||||
nvm use 0.9
|
||||
node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12"
|
||||
|
||||
npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed"
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
|
||||
|
@@ -4,12 +4,15 @@ die () { echo "$@" ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
nvm exec 0.10.28 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages
|
||||
nvm exec 0.10.29 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages
|
||||
|
||||
nvm use 0.10.28
|
||||
(cd test-npmlink && npm link)
|
||||
|
||||
EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame test-npmlink uglify-js yo"
|
||||
EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo"
|
||||
|
||||
echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet
|
||||
echo "$EXPECTED_PACKAGES" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet
|
||||
|
||||
get_packages() {
|
||||
npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs
|
||||
|
@@ -12,3 +12,9 @@ EXPECTED_OUTPUT="iojs-v1.0.1"
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use iojs' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
OUTPUT="$(nvm use --silent iojs)"
|
||||
EXPECTED_OUTPUT=""
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent iojs' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
@@ -12,3 +12,9 @@ EXPECTED_OUTPUT="$(nvm_version stable)"
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use node' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
OUTPUT="$(nvm use --silent node)"
|
||||
EXPECTED_OUTPUT=""
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent node' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
@@ -12,3 +12,9 @@ EXPECTED_OUTPUT="$(nvm_version v1.0.0)"
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use v1.0.0' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
OUTPUT="$(nvm use --silent 'v1.0.0')"
|
||||
EXPECTED_OUTPUT=""
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent v1.0.0' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
Reference in New Issue
Block a user