새 노드 버전을 설치하고 npm 패키지를 이동합니다. 대답: 노드의 기본 전역 설치 디렉터리를 변경합니다.Windows의 js 모듈?
나는 내가 이미
nvm
이나 노드 버전 관리자를 사용하고 있다는 것을 안다.그것은 내가 사용하는 루비 버전 관리자 rbenv
과 유사하게 잘 작동한다.nvm
의 자술을 보면 내가 해야 할 일은 다음과 같다.그런 다음 install 명령을 실행합니다.
nvm install 10.16.0
# I would put the output but I installed this like 3 weeks ago :(
...완성했어, 대단해!아무런 문제도 없는 것 같고, 다른 할 일도 없는 것 같다.로컬 dev.to repo에서
yarn
을 실행했지만 실패했습니다.:yarn
yarn install v1.16.0
# [1/4] 🔍 Resolving packages...
# [2/4] 🚚 Fetching packages...
# error [email protected]: The engine "node" is incompatible with this module.
# Expected version "^8.12.0 || >=9.7.0". Got "8.11.3"
# error Found incompatible module.
# Visit https://yarnpkg.com/en/docs/cli/install
# for documentation about this command.
응, 내 생각에 나는 여전히 구버전인 것 같아.nvm
의 자술 파일을 다시 읽으려면 설치된 새 노드 버전을 사용해야 합니다.nvm use 10.16.0
# Now using node v10.16.0 (npm v6.9.0)
좋아, 다행이야!이것은 마치 효과가 있는 것 같다.나는 yarn
을 뛰었다. 그것은 성공했다.어느 주말로 접어들면서 저는 게이츠비 측의 프로젝트에 종사하고 있습니다. 개발 서버를 시작하려고 합니다.
gatsby dev
#-bash: gatsby: command not found
응, 내 생각에 이것은 나의 새 노드 버전과 관련이 있을 것 같아.이전 버전의 패키지를 다시 설치하는 명령을 찾았습니다.nvm reinstall-packages 8.11.3
# Reinstalling global packages from v8.11.3...
# No installed global packages found...
# Linking global packages from v8.11.3...
# No linked global packages found...
이상해, 왜 이러는지 모르겠어.어떤 버전을 설치했는지 살펴보겠습니다.nvm list
# v8.11.3
# -> v10.16.0
# system
# default -> node (-> v10.16.0)
# node -> stable (-> v10.16.0) (default)
# stable -> 10.16 (-> v10.16.0) (default)
# iojs -> N/A (default)
# lts/* -> lts/dubnium (-> v10.16.0)
# lts/argon -> v4.9.1 (-> N/A)
# lts/boron -> v6.17.1 (-> N/A)
# lts/carbon -> v8.16.0 (-> N/A)
# lts/dubnium -> v10.16.0
오, 응, 내 패키지가 8.11.3이 아닌 시스템 버전에서 설치되었는지 알고 싶어.재설치 명령이 다시 실행되었지만 시스템은 제외됩니다.nvm reinstall-packages system
# some successful output
너무 좋아요.다시 한 번 gatsby develop
을 시도해 보겠습니다.아니오, 효과가 없어요.여전히 command not found
을 획득했습니다.응, 나는 두 가지 선택이 있어. 글로벌 패키지를 사용할 때마다 글로벌 패키지가 설치된 버전을 사용하든지, 문제를 해결하든지.사실 세 번째 선택도 있다. 첫 번째 선택을 하고 4주 동안 싫증이 나서 마침내 문제점을 찾아냈다.게으른 사람으로서 나는 이렇게 했다. 나는 여기서 이 글을 썼다.
응, 어쨌든, 나는 보편적인 느낌을 가지고 있다. 이것은 일부
npm
과 nvm
의 링크가 정확하지 않기 때문이다.gatsby develop
을 실행하면 실패하고 command not found
으로 돌아갑니다.which npm
# /Users/andyzhao/.nvm/versions/node/v8.11.3/bin/npm
응, 내가 처음으로 그것을 복구하려고 시도했을 때, 나는 수색하는 데 많은 시간을 들였지만, 모두 소용이 없었다.이번에 나는 창고 넘침에서 나를 도와줄 답을 찾았다.응답: 노드의 기본 글로벌 설치 디렉터리를 변경합니다.Windows의 js 모듈?
2014년 5월 10일
71
전역 패키지를 C:\Program Files (x86)\nodejs\
에 설치하려고 했는데 관리자 신분에 문제가 생겼습니다.C:\Program Files (x86)\nodejs\node_modules\
이 문제를 해결하려면 글로벌 설치 디렉토리를 C:\Users\{username}\AppData\Roaming\npm
으로 변경하십시오.C:\Users\{username}\
에서 다음 내용을 포함하는 .npmrc
파일을 만듭니다.prefix = "C:\\Users\\{username}\\AppData\\Roaming\\npm"
참고
npm install -g
… 구체적으로
npm config ls -l
명령은 나에게 필요한 단서를 주었다.npm config ls -l
# ; cli configs
# long = true
# metrics-registry = "https://registry.npmjs.org/"
# scope = ""
# user-agent = "npm/6.9.0 node/v10.16.0 darwin x64"
#
# ; userconfig /Users/andyzhao/.npmrc
# prefix = "/Users/andyzhao/.nvm/versions/node/v8.11.3"
# ...whole lots of other stuff
# globalconfig = "/Users/andyzhao/.nvm/versions/node/v8.11.3/etc/npmrc"
# ...etc.
따라서 나의 globalconfig
은 현재 버전의 v10.16.0이 아닌 노드 v8.11.3으로 설정되었다.접두사도 8.11.3인 것을 보고 userconfig
파일 .npmrc
을 열어 변경할 수 있는 것이 있는지 확인하기로 했습니다.# .npmrc
prefix=/Users/andyzhao/.nvm/versions/node/v8.11.3
아하!틀림없이 이렇다!정당하다나는 모르겠지만, 한번 해 볼 만하다.v10.16.0으로 업데이트하여 터미널을 다시 시작하고 nvm reinstall-packages system
을 실행합니다.npm
은 모든 내용을 계속 실행하고 설치합니다. gatsby-cli
이 설치된 것을 보았습니다.터미널을 다시 시작하여 gatsby develop
을 실행합니다.성공아이고, 정말 여행이야!이 문제를 해결하는 데는 틀림없이 내가 생각한 것보다 더 긴 시간이 걸릴 것이다. 그러나 나는 내가 성공적으로 해냈으니 매우 기쁘다.어떤 일을 하기 전에 3주 동안 버전을 반복해서 바꾸는 것은 사실이지만, 나는 한 문제에서 좀 쉬고 다시 살펴보는 것이 항상 도움이 된다고 생각한다.
nvm
과 npm
의 설치 문제를 해결해야 할 다른 사람이 없기를 바랍니다.✌️
Reference
이 문제에 관하여(새 노드 버전을 설치하고 npm 패키지를 이동합니다. 대답: 노드의 기본 전역 설치 디렉터리를 변경합니다.Windows의 js 모듈?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andy/installing-a-new-node-version-and-migrating-npm-global-packages-4no3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)