bash 스크립트에서는 nvm 명령을 사용할 수 없습니다

bash 스크립트에서는 nvm 명령을 사용할 수 없습니다

nvm노드가 결국 설치될 스크립트를 작성하려고 합니다 .
cURL이 설치되어 있습니다 nvm. .profile파일에 또는 수정 사항이 표시되고 .bashrc(둘 다 작동함) bash 프롬프트에 입력하면 nvm사용 가능한 옵션 등이 표시됩니다.
따라서 nvm이 작동할 수 있습니다. 노드를 수동으로 설치할 수 있지만 일단 nvm명령을 쉘 스크립트에 넣으면 다음과 같습니다 .

nano test.sh

#!/bin/bash
nvm

그리고 실행하세요:

chmod 755 test.sh
./test.sh

나는 얻다:

./test.sh: line 2: nvm: command not found

못찾으면 nvm생각할 필요도 없지

nvm ls-remote 

또는

nvm install ...

Ubuntu 14.04가 설치되어 있고 Bash가 내 쉘입니다.

답변1

nvm명령은 에 있습니다 ~/.nvm/nvm.sh.

시작할 때 사용할 수 있도록 다음 스크립트 중 하나를 얻을 수 있습니다 nvm().

. ~/.nvm/nvm.sh
. $(brew --prefix nvm)/nvm.sh  # if installed via Brew

답변2

OSX에서 Brew를 통해 설치한 경우 설치에 대한 세부 정보를 가져와 Brew 소스 스크립트를 스크립팅 환경에 로드할 수 있습니다.

프로젝트에 부트스트랩을 적용하는 방법이 있습니다.

brew install nvm
. $(brew --prefix nvm)/nvm.sh
nvm install
...

답변3

여기와 안에 있는 모든 답변이 관련 nvm 문제내가 만든다이 스크립트(요지)복사하거나 복제할 수 있습니다(인라인 문서):

# shellcheck shell=sh
# https://gist.github.com/karfau/dcf98c6eefc2f2132c160f5c14d2112f

# needs to be sourced as part of your script
# 1. tries to configure nvm and run `nvm install`
# 2. checks if the node version is correct based on ./.nvmrc (`v` prefix not supported)
# if both doesn't work, exits with code 1 and some helpful messages

# https://unix.stackexchange.com/a/184512/194420
# https://github.com/nvm-sh/nvm/issues/1290
if [ -f ~/.nvm/nvm.sh ]; then
  echo 'sourcing nvm from ~/.nvm'
  . ~/.nvm/nvm.sh
elif command -v brew; then
  # https://docs.brew.sh/Manpage#--prefix-formula
  BREW_PREFIX=$(brew --prefix nvm)
  if [ -f "$BREW_PREFIX/nvm.sh" ]; then
    echo "sourcing nvm from brew ($BREW_PREFIX)"
    . $BREW_PREFIX/nvm.sh
  fi
fi

if command -v nvm ; then
  nvm i
else
  echo "WARN: not able to configure nvm"
fi

NODE_VERSION="v$(cat .nvmrc)"
which node
ACTIVE_VERSION=$(node --version)
GLOBAL_NPM=$(which npm || echo "not found on PATH")
# .nvmrc can contain only major or major.minor or full version
# so we replace active version with node version and anything afterwards
# if something is left, it's not a match
if [ "${ACTIVE_VERSION%%$NODE_VERSION*}" ] || [ ! -e "$GLOBAL_NPM" ]; then
  echo "expected node '$NODE_VERSION' and npm on path"
  echo "but was '$ACTIVE_VERSION' and npm:'$GLOBAL_NPM'"
  exit 1
fi

요점에 도움이 되기를 바랍니다. 요점이나 여기에서 피드백을 환영합니다.

추신 : 그동안 NVM_DIR사용자 디렉터리 대신 환경 변수를 사용하여 사용자 지정 설치 섹션을 지원 하도록 요점을 업데이트하고 .nvm usenvm install

답변4

이 솔루션 중 어느 것도 내 문제를 해결하지 못했습니다. nvm을 사용하기 전에 sh 파일에서 이 작업을 수행해야 했습니다.

export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
nvm --version # this line can be delete

관련 정보