mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-10 14:21:50 +00:00
Merge bf89c7cde0
into 1750b8d327
This commit is contained in:
commit
3f8a68c1c3
11
README.md
11
README.md
@ -40,6 +40,7 @@
|
||||
- [Set default node version](#set-default-node-version)
|
||||
- [Use a mirror of node binaries](#use-a-mirror-of-node-binaries)
|
||||
- [.nvmrc](#nvmrc)
|
||||
- [.node-version](#node-version)
|
||||
- [Deeper Shell Integration](#deeper-shell-integration)
|
||||
- [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file)
|
||||
- [bash](#bash)
|
||||
@ -565,6 +566,16 @@ Now using node v5.9.1 (npm v3.7.3)
|
||||
|
||||
The contents of a `.nvmrc` file **must** be the `<version>` (as described by `nvm --help`) followed by a newline. No trailing spaces are allowed, and the trailing newline is required.
|
||||
|
||||
### .node-version
|
||||
|
||||
For a little compatability with other node version managers, nvm will also sniff for `.node-version` files, defaulting to `.nvmrc` if both are found in the same folder.
|
||||
|
||||
```
|
||||
$ echo "5.9" > .node-version
|
||||
```
|
||||
|
||||
Unlike `.nvmrc`, `.node-version` cannot contain a "versionish" (an alias, like `node`, `iojs`, or a custom alias you’ve defined). `.node-version` can only have versions in the format of v1, v1.2, or v1.2.3 (the `v` is optional).
|
||||
|
||||
### Deeper Shell Integration
|
||||
|
||||
You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` maintainers. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new).
|
||||
|
31
nvm.sh
31
nvm.sh
@ -452,19 +452,27 @@ nvm_find_project_dir() {
|
||||
# Traverse up in directory tree to find containing folder
|
||||
nvm_find_up() {
|
||||
local path_
|
||||
local file
|
||||
path_="${PWD}"
|
||||
while [ "${path_}" != "" ] && [ "${path_}" != '.' ] && [ ! -f "${path_}/${1-}" ]; do
|
||||
path_=${path_%/*}
|
||||
|
||||
# Iterate through the multiple files
|
||||
while [ $# -ne 0 ]; do
|
||||
# Look for files in turn in this path_
|
||||
while [ "${path_}" != "" ] && [ "${path_}" != '.' ]; do
|
||||
# Is the file here?
|
||||
if [ -f "${path_}/${1-}" ]; then
|
||||
file="${path_}/${1-}"
|
||||
echo "${file}"
|
||||
break 2
|
||||
fi
|
||||
path_=${path_%/*}
|
||||
done
|
||||
shift
|
||||
done
|
||||
nvm_echo "${path_}"
|
||||
}
|
||||
|
||||
nvm_find_nvmrc() {
|
||||
local dir
|
||||
dir="$(nvm_find_up '.nvmrc')"
|
||||
if [ -e "${dir}/.nvmrc" ]; then
|
||||
nvm_echo "${dir}/.nvmrc"
|
||||
fi
|
||||
nvm_echo "$(nvm_find_up '.nvmrc' '.node-version')"
|
||||
}
|
||||
|
||||
# Obtain nvm version from rc file
|
||||
@ -474,19 +482,20 @@ nvm_rc_version() {
|
||||
NVMRC_PATH="$(nvm_find_nvmrc)"
|
||||
if [ ! -e "${NVMRC_PATH}" ]; then
|
||||
if [ "${NVM_SILENT:-0}" -ne 1 ]; then
|
||||
nvm_err "No .nvmrc file found"
|
||||
nvm_err "No .nvmrc or .node-version file found"
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
NVMRC_BASENAME="$(command basename "$NVMRC_PATH")"
|
||||
NVM_RC_VERSION="$(command head -n 1 "${NVMRC_PATH}" | command tr -d '\r')" || command printf ''
|
||||
if [ -z "${NVM_RC_VERSION}" ]; then
|
||||
if [ "${NVM_SILENT:-0}" -ne 1 ]; then
|
||||
nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\""
|
||||
nvm_err "Warning: empty '${NVMRC_BASENAME}' file found at \"${NVMRC_PATH}\""
|
||||
fi
|
||||
return 2
|
||||
fi
|
||||
if [ "${NVM_SILENT:-0}" -ne 1 ]; then
|
||||
nvm_echo "Found '${NVMRC_PATH}' with version <${NVM_RC_VERSION}>"
|
||||
nvm_echo "Found '${NVMRC_BASENAME}' with version <${NVM_RC_VERSION}>"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -8,3 +8,7 @@ nvm install --lts
|
||||
if [ -f ".nvmrc" ]; then
|
||||
mv .nvmrc .nvmrc.bak
|
||||
fi
|
||||
|
||||
if [ -f ".node-version" ]; then
|
||||
mv .node-version .node-version.bak
|
||||
fi
|
||||
|
@ -7,7 +7,12 @@ nvm uninstall v1.0.0
|
||||
nvm uninstall --lts
|
||||
|
||||
rm .nvmrc
|
||||
rm .node-version
|
||||
|
||||
if [ -f ".nvmrc.bak" ]; then
|
||||
mv .nvmrc.bak .nvmrc
|
||||
fi
|
||||
|
||||
if [ -f ".node-version.bak" ]; then
|
||||
mv .node-version.bak .node-version
|
||||
fi
|
||||
|
@ -12,6 +12,21 @@ echo "0.10.7" > .nvmrc
|
||||
[ "$(nvm run --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm run\` failed to print out the \"found in .nvmrc\" message"
|
||||
|
||||
|
||||
echo "0.12.0" > .node-version
|
||||
|
||||
[ "$(nvm run --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the .nvmrc version"
|
||||
|
||||
[ "$(nvm run --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm run\` failed to print out the \"found in .nvmrc\" message"
|
||||
|
||||
rm .nvmrc
|
||||
|
||||
[ "$(nvm run --version | tail -1)" = "v0.12.0" ] || die "\`nvm run\` failed to run with the .node-version version"
|
||||
|
||||
[ "$(nvm run --version | head -1)" = "Found '$PWD/.node-version' with version <0.12.0>" ] || die "\`nvm run\` failed to print out the \"found in .node-version\" message"
|
||||
|
||||
rm .node-version
|
||||
|
||||
|
||||
echo "foo" > .nvmrc
|
||||
|
||||
# running nvm run with .nvmrc should not print the version information when not installed
|
||||
|
Loading…
Reference in New Issue
Block a user