Node.js를 완전히 제거하고 처음부터 다시 설치하는 방법 (Mac OS X)


1289

brew node와 NVM install v0.6.19를 설치 한 후에도 내 노드 버전은 항상 v0.6.1-pre입니다.

내 노드 버전은 다음과 같습니다

node -v
v0.6.1-pre

NVM은 이것을 말합니다 (한 bash 터미널에 처음으로 노드 버전을 설치 한 후).

nvm ls
v0.6.19
current:    v0.6.19

그러나 bash를 다시 시작하면 다음과 같습니다.

nvm ls
v0.6.19
current:    v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)

그렇다면이 팬텀 노드 0.6.1 프리 버전은 어디에 있으며 어떻게 제거 할 수 있습니까? 프로젝트에서 작업 할 수 있도록 NPM을 통해 라이브러리를 설치하려고합니다.

BREW를 사용하여 NVM 전에 업데이트 brew update하고 and 을 사용해 보았습니다 brew install node. 내 "node"디렉토리와 내 /usr/local/include"node"및 "node_modules" 삭제를 시도했습니다 /usr/local/lib. 나는 NPM을 제거하고 다음 다시 설치 시도했습니다 이러한 지침을 제공합니다.

"zipstream"라이브러리를 설치하기 위해 이전 버전의 노드를 업데이트하려고했기 때문에이 모든 것이 가능합니다. 이제 내 사용자 디렉토리에 폴더가 있으며 NVM에서 0.6.19를 사용한다고 말하지만 STILL 버전이 최신 상태가 아닙니다.

이상적으로 nodejs, npm 및 nvm을 제거하고 시스템 전체를 처음부터 다시 설치하고 싶습니다.



/ usr / bin / node는 또 하나입니다 ...
Aaron Blenkush

1
이것은 pkg 파일을 통해 노드를 설치 한 사람에게 도움이 될 수 있습니다. superuser.com/questions/36567/…
karthikeayan

Mac 10.13.5에는 / Users / myusername / node_modules가 있습니다.이 폴더도 삭제해야합니까? 이 스레드에서 검색했지만 아무도이 문제에 직면 한 것으로 보이지 않습니다.
vikramvi

@Pacerier도 노드 여전히 요지에 명령을 다음과 NPM 후 맥 OS 10.13.5에 존재
vikramvi

답변:


1698

분명히 with 와 with 및 with /Users/myusername/local를 포함하는 폴더가있었습니다 . 이것이 내 폴더 대신 어떻게 그리고 왜 만들어 졌는지 모르겠습니다.includenodelibnodenode_modules/usr/local

이러한 로컬 참조를 삭제하면 팬텀 v0.6.1-pre가 수정되었습니다. 누구든지 설명이 있으면 정답으로 선택하겠습니다.

편집하다:

추가 지침을 수행해야 할 수도 있습니다.

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

이것은 (위와 동일) ...

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp 

또는 (위와 동일) 세분화 ...

node + npm을 완전히 제거하려면 다음을 수행하십시오.

  1. / usr / local / lib 로 이동하여 nodenode_modules를 삭제하십시오.
  2. / usr / local / include 로 이동하여 nodenode_modules 디렉토리를 삭제하십시오.
  3. brew install node로 설치 한 경우 터미널에서 brew uninstall node 를 실행 하십시오.
  4. 홈 디렉토리에 로컬 또는 lib 또는 포함 폴더가 있는지 확인 하고 거기에서 node 또는 node_modules 를 삭제하십시오.
  5. / usr / local / bin으로 이동하여 모든 노드 실행 파일을 삭제하십시오.

다음을 수행해야 할 수도 있습니다.

sudo rm -rf /opt/local/bin/node /opt/local/include/node /opt/local/lib/node_modules
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d

또한 NVM은의 PATH 변수를 수정하며이 변수 는 수동으로 되돌려$HOME/.bashrc 야합니다 .

그런 다음 nvm을 다운로드 하고 지침에 따라 노드를 설치하십시오. 최신 버전의 노드에는 npm 이 포함되어 있지만 다시 설치할 수도 있습니다.


82
나도해야했다 rm -rf /Users/[homedir]/.npm.
brokenindexfinger

17
또한 제거해야합니다/Users/[homedir]/.nvm
n0pe

42
또한 실행 brew doctor하고 brew pruneNPM에 대한 깨진 심볼릭 링크의 무리를 정리 할 수 있습니다.
Chris Jacob

54
나는 지금 전투 테스트를 거친 스크립트를 함께 던졌습니다. 감사합니다 @DominicTancredi 이것은 훌륭하게 작동합니다! gist.github.com/brock/5b1b70590e1171c4ab54
브록

13
나는 또한 추가해야했다 : sudo rm -rf ~/.node-gyp. 양조로 전환하기 전에 MacPorts에 추가했습니다.
JESii

518

양조 사용자의 경우 OSX :

제거:

brew uninstall node; 
# or `brew uninstall --force node` which removes all versions
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;

설치하기 위해서:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules' # <--- add this ~/.bashrc

brew info node노드 설치에 대한 자세한 내용을 보려면 실행할 수 있습니다 .


추출 대신 NVM 사용을 고려하십시오.

NVM (노드 버전 관리자)은 여러 버전의 노드를 관리하기위한 휴대용 솔루션입니다.

https://github.com/nvm-sh/nvm

> nvm uninstall v4.1.0
> nvm install v8.1.2
> nvm use v8.1.2
> nvm list
         v4.2.0
         v5.8.0
        v6.11.0
->       v8.1.2
         system

이 기능을 AVN과 함께 사용하면 노드 종속성이 다른 여러 프로젝트간에 홉할 때 버전을 자동으로 전환 할 수 있습니다 .


2
그러한 설치 후 노드와 npm을 사용할 수 있도록 env vars를 설정하는 방법은 무엇입니까?
Maxim V. Pavlov

13
--force모든 버전의 노드가 제거되도록 플래그로 brew를 실행해야 할 수도 있습니다 . $ brew uninstall --force node
magikMaker 8

-bash: /usr/local/bin/npm: No such file or directory내가 지금 무엇을 할 수 있을까?
ValRob

5
> "brew 대신 NVM 사용을 고려하십시오"; 아이러니하게도 brew 와 함께 NVM 설치할 수 있습니다 !; 좋은 팁, 감사합니다.
행카

2
NVM 사용이 도움이되었습니다.
coderpc

186

이 게시물이 약간 오래되었지만 Node.js를 제거 할 때 터미널에서 나를 위해 일한 명령을 공유하고 싶었습니다.

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

최신 정보: 23 SEP 2016


이 명령을 실행하는 것이 두려운 경우 ...

덕분 jguixthis quick tutorial.

먼저 중간 파일을 작성하십시오.

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom >> ~/filelist.txt

파일을 수동으로 검토 ( Home폴더에 있음)

 ~/filelist.txt

그런 다음 파일을 삭제하십시오.

cat ~/filelist.txt | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

10.10.5 이상

감사 Lenar Hoyt

요점 설명 출처 : gistcomment-1572198

오리지널 요지 : TonyMtz/d75101d9bdf764c890ef

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

15
우와-끔찍하다. 적어도 첫 번째 "rm"은 "rm -rf"가 아니며, sbom에 빈 줄이 있으면 / usr / local을 모두 제거합니다. 너무 무겁게 행동하기 전에 sbom 출력과 이러한 모든 dirs의 출처를 면밀히 조사하고 제거 할 대상을 정확히 알고 있어야합니다.
Don Hatch

16
나는 당신이 건강한 자기 보존 본능을 가지고 있다면 "sudo rm -rf /"로 시작하는 두 번째 명령을 입력하거나 복사하여 붙여 넣기가 매우 어려울 것입니다. 재채기 나 고양이가 키보드에서 뛰어 내리면 파일 시스템이 손상되었습니다.
돈 해치

2
그것은의 org.nodejs.node.pkg.bom대신 org.nodejs.pkg.bom.
Lenar Hoyt

1
@DonHatch는 첫 글자없이 줄을 복사하여 시작 하기 전에 시작 udo..하고 앞에 씁니다 s.
youurayy

1
lsbom 명령은 상대 경로를 출력하므로 스크립트는 다음과 같은 경로를 삭제하려고했습니다 /usr/local/./node/yada. ./접두사 를 제거하려면 컷 필터를 사용했습니다. lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | cut -c 3- | while read f; do sudo rm /usr/local/${f}; done
timiscoding

142

매버릭스에서 나는 nodejs 사이트 (nodejs 사이트에서)에서 설치하고 brew를 사용하여 다시 설치할 수 있도록 제거합니다. 터미널에서 4 개의 명령 만 실행합니다.

  1. sudo rm -rf /usr/local/lib/node_modules/npm/
  2. brew uninstall node
  3. brew doctor
  4. brew cleanup --prune-prefix

여전히 노드 설치가있는 경우 2 단계를 반복하십시오. brew install node


50
1은 작동했지만 2는 실패했습니다. 나는 "그런 술통이 없다 : usr / local / Cellar / node"
PositiveGuy

네, 매버릭스
다이 서

1
나는 그것을 시도했지만 다시 같은 오류가 발생 오류 : brew link단계가 성공적으로 완료되지 않았습니다
Chandni

감사합니다. 제거를 위해 --force를 추가해야한다는 점을 제외하면 완벽합니다.
Medhi

1
참고 :이 글을 쓰는 시점에서 –->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Mike S.

33
  1. 먼저:

    lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done
    
    sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
  2. 요약하면 node + npm을 완전히 제거하는 가장 좋은 방법은 다음을 수행하는 것입니다.

    /usr/local/libnode 및 node_modules 로 이동하여 삭제하십시오.

    cd /usr/local/lib
    
    sudo rm -rf node*
  3. /usr/local/includenode 및 node_modules 디렉토리 로 이동하여 삭제하십시오.

    cd /usr/local/include
    
    sudo rm -rf node*
  4. 로 설치 한 경우 터미널에서 brew install node실행 brew uninstall node하십시오.

    brew uninstall node
  5. 홈 디렉토리에서 "local"또는 "lib"또는 "include"폴더를 확인하고 "node"또는 "node_modules"를 삭제하십시오.

    / usr / local / bin으로 이동하여 노드 실행 파일을 삭제하십시오.

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
  6. 추가 지침을 수행해야 할 수도 있습니다.

    sudo rm -rf /usr/local/share/man/man1/node.1
    
    sudo rm -rf /usr/local/lib/dtrace/node.d
    
    sudo rm -rf ~/.npm

출처 : tonyMtz


7
제거하는 node*것이 특히 안전한 방법은 아닙니다. 해당 접두사가있는 다른 바이너리가있을 수 있습니다.
Lenar Hoyt

2
마지막으로 3 일이 지나면 매번 npm 문제가 발생했을 때 완전히 제거하고 내 Mac에서 추출을 사용하여 다시 설치하면 매력처럼 작동합니다.
Amit Bravo

때 얻는 첫 번째 명령을 발사 can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.하십시오 도움을
Ahtesham 샤에게

Mac 10.13.5에서 이러한 단계를 수행 한 후에도 여전히 npm 및 node에서 무엇이 잘못 될 수 있습니까?
vikramvi

25

노드를 0.10.36으로 다운 그레이드

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n 0.10.36

노드를 안정적인 v로 업그레이드

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n stable

방금이 작업을 수행하고 이상하게도 npm을 6.4.1에서 6.2.0으로 다운 그레이드했습니다.
Capn Sparrow 23

22

이전 버전 (4.4.5)이 있었는지 또는 공식 설치 프로그램을 사용했기 때문인지 확실하지 않지만 다른 답변에서 참조되는 대부분의 파일이 내 시스템에 존재하지 않았습니다. 나는 다음을 제거해야했습니다.

~/.node-gyp
~/.node_repl_history
/usr/local/bin/node
/usr/local/bin/npm
/usr/local/include/node
/usr/local/lib/dtrace/node.d
/usr/local/lib/node_modules
/usr/local/share/doc/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp

~/.npmHomebrew로 Node를 다시 설치하려고했기 때문에 계속 하기 로 결정했습니다 .


이 답변은 2012 년에 이루어 졌으므로 약간의 유산이 있다고 확신합니다. 이제 새로운 답변이 표시되면 효과적인지 검토 한 후이를 찬성합니다.
Dominic Tancredi

15

나는 기존의 답변을 요약하고 있는지 노드 JS 만든 완전하게 지워지고 * NPM과 함께합니다.

  1. brew uninstall node
  2. which node
  3. sudo rm -rf /usr/local/bin/node
  4. sudo rm -rf /usr/local/lib/node_modules/npm/
  5. brew doctor
  6. brew cleanup --prune-prefix

터미널에 복사 할 줄 :

brew uninstall node;
which node;
sudo rm -rf /usr/local/bin/node;
sudo rm -rf /usr/local/lib/node_modules/npm/;
brew doctor;
brew cleanup --prune-prefix;

나는이 단계를 밟았으며 효과가 있었던 것 같습니다. 나는 아직도처럼 내 루트 폴더에 디렉토리가 .node-gyp/, .npm/, .npm-global/,와 .nvm/. 노드를 다시 설치할 계획이거나 삭제해야합니까?
WaterTrash

10
  • / usr / local / lib에서 node 및 / 또는 node_module을 삭제하십시오.

          ex code:
          cd /usr/local/lib
          sudo rm -rf node
          sudo rm -rf node_modules
  • / usr / local / include에서 node 및 / 또는 node_module을 삭제하십시오.

  • / usr / local / bin에서 node, node-debug 및 node-gyp를 삭제하십시오.
  • 홈 디렉토리에서 .npmrc 삭제
  • 홈 디렉토리에서 .npm 삭제
  • 홈 디렉토리에서 .node-gyp를 삭제하십시오.
  • 홈 디렉토리에서 .node_repl_history를 삭제하십시오.
  • / usr / local / share / man / man1 /에서 노드 *를 삭제하십시오.
  • / usr / local / share / man / man1 /에서 npm * 삭제
  • / usr / local / lib / dtrace /에서 node.d를 삭제하십시오.
  • / usr / local / opt / local / bin /에서 노드 삭제
  • / usr / local / opt / local / include /에서 노드 삭제
  • / usr / local / opt / local / lib /에서 node_modules를 삭제하십시오.
  • / usr / local / share / doc /에서 노드 삭제
  • / usr / local / share / systemtap / tapset /에서 node.stp를 삭제하십시오.

나는 또한 제거 node@6했다/usr/local/opt/
echo


8

brew uninstall node

나는 어떤 노드를 알아야했다

which node

그런 다음 제거

rm -rf /usr/local/bin/node

7

이미 nvm 을 설치 한 경우 다음 명령을 실행하십시오.

  • nvm deactivate -$ PATH에서 /.nvm/*/bin을 제거합니다.
  • nvm list -시스템에 설치된 모든 버전의 노드를 나열하려면
  • nvm uninstall <version> 제거 할 모든 버전을 지정할 수 있습니다.

항상 대신 노드를 사용하여 설치 nvm하고 제거하는 nvm것이 좋습니다 brew.

이 솔루션은 저에게 효과적이었습니다.

추가 명령

  • which node시스템에 설치된 노드의 경로를 알아야합니다. 이 디렉토리를 rm하여 노드를 수동으로 설치 제거 할 수 있습니다. 그런 다음 PATH 파일을 적절히 조정해야합니다.

6

Dominic Tancredi의 멋진 답변을 확장하여 이것을 bash 패키지와 독립형 스크립트로 롤백했습니다. bpkg 라는 "Back Package Manager"를 이미 사용 중인 경우 다음을 실행하여 스크립트를 설치할 수 있습니다.

bpkg install -g brock/node-reinstall

또는 Github에서 brock / node-reinstall 의 스크립트를 살펴볼 수 있습니다 . 이 스크립트를 사용하면 nvm 또는 nave를 사용하여 노드를 다시 설치하고 노드 버전을 기본값으로 지정할 수 있습니다.


1
나는 이것을 게시하려고했으며, 저자 자신이 문제에 대한 최상의 답변을 게시했다는 것을 알 수 있습니다. node-reinstall을 한 번 사용하면 다시 돌아 보지 않을 것입니다. 지면을 치고 더 발전 할 준비가 되었습니까! 이 @brockangelo를 위해 건배!
Wallace Sidhrée

3
Warning ..... node-reinstall스크립트에는 다음 줄이 포함되어 있습니다. sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*} 따라서 독립적으로 해당 이름의 디렉토리를 $HOME(내가하는 것처럼) 가지고 있으면 혼란스럽게됩니다!
terrycojones


5

Mac에서 Node.js를 제거하는 동안 문제가 발생했습니다. 나는이 npm모든 것으로 그것을 제거한 후에도 여전히 이상한 행동을했다 .

macport로 이전 설치를 완료했기 때문입니다. 따라서 포트를 사용하여 제거해야합니다.

sudo port uninstall nodejs

Node.js의 여러 버전이 설치되었을 수 있으므로 모두 하나씩 제거하십시오.


1
이것은 당신의 부록 답변을 위해 나에게 일어난 일입니다. 글쎄, 나는 여러 버전의 Cordova를 갖기 시작했고, npm은 하나의 Cordova를 제거 할 수 없으며 그 반대도 마찬가지입니다.
peter_the_oak

5

어쩌면 당신은 만들어야합니다

hash -r 

그것은 symlink의 문제를 돕습니다

$ node -v
$ bash: /opt/local/bin/node: No such file or directory


4

가장 좋은 방법은 설치 프로그램 패키지를 다운로드하는 것입니다 : .pkg on mac. 안정적인 최신 버전을 선호하십시오.

링크는 다음과 같습니다. Node.js

이 패키지는 결국 이전 버전을 덮어 쓰고 그에 따라 환경 변수를 설정합니다. 몇 번의 클릭만으로 설치 프로그램을 실행하십시오.


3

git 저장소에서 다운로드 한 소스에서 Node.js를 설치했습니다. 나는 다음과 같이 설치했다.

./configure
$ make
$ sudo make install

make 파일이 지원하기 때문에 다음을 수행 할 수 있습니다.

$ sudo make uninstall

병렬로 실행하는 방법? 2 버전을 실행하고 싶다고 말합니까?

3

homebrew를 통한 정리 및 설치를 설명하는 답변의 동반자로서 homebrew 자체가 symlink 충돌의 명확한 표시를 제공함을 발견했습니다.

불행히도 그것은 그것들을 만날 때 하나씩 하나씩 제공하므로 조금 힘들지만 모든 충돌을 발견하는 것처럼 보이고 홈 브루로 깨끗하게 설치할 수있는 유일한 방법이었습니다.

기본적으로 프로세스는 다음과 같습니다.

  1. homebrew를 사용하여 노드 제거
  2. 깨끗한 사제
  3. homebrew를 사용하여 노드를 설치하고 플래그가 지정된 충돌 파일을 확인하십시오.
  4. 플래그 충돌 파일 (또는 '노드'디렉토리 인 경우 전체 디렉토리)을 삭제하십시오.
  5. 새로 설치 될 때까지 1 단계로 이동하십시오.

도식적으로:

다음은 설치의 마지막 단계에서 출력 된 화면입니다. 새로 설치 한 결과는 다음과 같습니다 (결국 ...).

computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/share/systemtap/tapset/node.stp'
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d
already exists. You may want to remove it:
  rm '/usr/local/lib/dtrace/node.d'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/lib/dtrace/node.d'
computer1:DevResources user1$ 
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ node -v
v13.1.0

2

우선 새 노드 버전을 설치 한 후 node : (mac)를 비활성화해야합니다.

nvm deactivate

$ PATH에서 /Users/user_name/.nvm/*/bin이 제거되었습니다.

그리고 그 노드가 업데이트 된 후

node --version
v10.9.0

1

이 문제가 해결되었습니다 . Homebrew 사용자를위한 Mac OS X에서 npm 수정 . 그리고 너무 많은 단계가 필요하지 않습니다.

이유를 신경 쓰지 않으면 솔루션 부분으로 이동하십시오.

편의상 관련 부분은 다음과 같습니다.

해결책

이 솔루션은 실행으로 인한 오류를 수정합니다 npm update npm -g. 완료되면 sudonpm 모듈을 전체적으로 설치하는 데 사용할 필요가 없습니다 .

시작하기 전에 전체적으로 설치된 npm 패키지를 기록해 두십시오. 이 지시 사항에 따라 해당 패키지를 모두 제거해야합니다. 완료 한 후에 다시 설치해야합니다.

다음 명령을 실행하여 기존의 모든 글로벌 npm 모듈을 제거하고, 노드 및 npm을 설치 제거하고, 올바른 기본값으로 노드를 다시 설치하고, 글로벌 npm 모듈을 설치할 위치를 구성한 다음, npm을 자체 pacakge로 설치하십시오.

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

이때 Node 및 npm이 올바르게 설치되어 있어야합니다. 마지막 단계는 npm 및 global npm 패키지를 사용할 수 있도록 추가 ~/.npm-packages/bin하는 것 PATH입니다. 이렇게하려면 다음 줄을 추가하십시오 ~/.bash_profile.

export PATH="$HOME/.npm-packages/bin:$PATH"

이제 문제없이 필요한 모든 글로벌 npm 패키지를 다시 설치할 수 있습니다.


4
링크 전용 답변은 스택 오버플로에서 권장하지 않습니다.
Andrew Grimm

@AndrewGrimm이 의미가 있습니다. 관련 부분을 복사했습니다.
pcatre

1
다음 명령을 입력하면 다음 오류가 발생합니다. curl -L npmjs.com/install.sh | sh .... npm ERR! 이 실행의 전체 로그는 다음 위치에서 찾을 수 있습니다. npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm ERR! 코드 E404 npm ERR! 404 찾을 수 없음 : 1.535s@latest npm ERR! 이 실행의 전체 로그는 다음 위치에서 찾을 수 있습니다. npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log 실패
Shoaib Ahmed

1

필자의 경우 이전에 node8로 다운 그레이드했기 때문에 다른 답변은 작동하지 않았습니다. 따라서 위의 작업 대신 다음이 나를 위해 일했습니다.

which node

/usr/local/bin/node@8대신에 반환/usr/local/bin/node

그래서 나는이 명령을 실행했다 :

brew uninstall node@8

작동하고 공식 사이트에서 최신 pkg를 다운로드하여 설치했습니다. 그 후 터미널을 닫고 새 버전에 액세스하기 위해 다시 시작해야했습니다.


1

당신이 노드 바로 실행 찾을 수없는 경우 whereis nodewhereis npmwhereis nvm및 필요에 따라 나열된 디렉토리를 제거 할 수 있습니다.

또한 변경 사항을 적용하려면 터미널을 완전히 닫았다가 다시 열어야합니다.


0

@ lfender6445 답변 은 제거하기 위해 잘 작동했습니다.

다시 설치하려면 가장 안정적인 버전 대신 마지막 버전을 설치하는 데 문제가 있으므로 특정 노드 버전을 설치하려면 다음을 수행하십시오.

brew install node@10 // 10 is the version I want
brew link node@10

0

도커-대체 접근법

Docker는 노드와 같은 도구를 실행하는 데 사용할 수있는 일종의 초고속 가상 컴퓨터입니다 (대신 mac-os에 직접 설치). 그것을하는 장점은 다음과 같습니다

  • 모든 물건 ( 'milions'노드 파일)은 docker image / container 안에 설치됩니다 (내부 도커 파일이 거의 없습니다)

  • mac 디렉토리를 프로젝트와 함께 docker 컨테이너에 매핑하고 노드에 액세스 할 수 있지만 docker 외부에서는 mac-os 시스템이 노드가 설치되어 있음을 알지 못합니다. 따라서 실제 파일에서 작동하는 사용 가능한 노드 명령으로 일종의 '가상'콘솔을 얻습니다.

  • 당신은 쉽게 그것에 의해 발견하여 노드를 죽일 수 docker ps와 살인으로docker rm -f name_or_num

  • 하나의 명령으로 docker 이미지 / 컨테이너를 쉽게 제거 docker rmi ...하고 여유 공간을 확보하고 스크립트를 실행하여 다시 설치할 수 있습니다 (아래).

  • 노드는 도커 내부에 캡슐화되어 있으며 전체 시스템에 액세스 할 수 없으며 매핑 된 폴더에만 액세스 할 수 있습니다

  • 당신은 노드 서비스를 실행하고 쉽게 포트를 맥 포트에 매핑하고 웹 브라우저에서 액세스 할 수 있습니다

  • 동시에 많은 노드 버전을 실행할 수 있습니다

  • 비슷한 방식으로 (동시에 많은 버전에서) php, 데이터베이스, redis 등과 같은 다른 도구를 mac-os와 상호 작용하지 않고 도커 내부에 설치할 수 있습니다 (이 소프트웨어는 전혀 눈에 띄지 않습니다). 예를 들어 다른 버전의 3 mysql db와 다른 PHP 버전의 3 php 응용 프로그램을 동시에 실행할 수 있습니다 ...-많은 도구를 사용할 수 있지만 깨끗한 시스템

  • 팀워크 : 이러한 환경은 다른 머신 (및 일부 수정 사항이있는 Windows / 리눅스 시스템으로)으로 쉽게 복제 할 수 있으며 동일한 도커 레벨 환경을 제공하므로 스크립트 / 도커 파일 및 설정 환경을 쉽게 설정하고 재사용 할 수 있습니다. 매우 빠른 방법으로 새로운 팀원 (도커를 설치하고 유사한 폴더 구조를 작성하고 스크립트 사본을 얻으면됩니다). 나는이 방법으로 2 년 동안 팀과 함께 일합니다-우리는 매우 행복합니다

교수

  • 이 지침을 사용하여 도커 설치

  • 작업을 위해 '특별한'디렉토리를 준비하십시오. 예를 들어 내 디렉토리는 /Users/kamil/work(이 디렉토리를 더 사용하지만 임의적 일 수 있습니다)-이 디렉토리는 도커 컨테이너와 mac 파일 시스템 사이의 '인터페이스'입니다. 이 디렉토리 안에 다음과 같은 디렉토리 구조를 만듭니다.

    /Users/kamil/work/code -여기에 코드로 프로젝트를 넣습니다.

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data -여기서 우리는 로그와 같은 컨테이너 출력 데이터 (또는 누군가 db를 우스운 경우 데이터베이스 파일)를 매핑합니다.

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd -여기에 도커 노드 스크립트를 넣습니다.

  • 한 곳에서 다른 스크립트에 사용되는 전역 경로를 포함하는 tools작성 파일 내부.env

  • innside dir 다음 내용으로 ../node-cmd파일 dockerfile을 만듭니다.

  • innside dir 다음 내용으로 ../node-cmd파일 run-container을 생성하십시오 (이 파일은 예를 들어 다음과 같이 실행 가능해야 함 chmod +x run-container)-(우리는 포트 및 디렉토리를 외부 'world'에서 내부 도커 파일 시스템으로 매핑하는 방법 에 유의하십시오 )

  • 이제 프로젝트 work/code/myProject를 추가하고 'run-cmd'파일 다음에 추가 할 수 있습니다 (실행 파일이어야 함)

  • 그런 다음 위의 스크립트를 두 번 클릭하면 프로젝트 디렉토리에 사용 가능한 노드 명령이있는 콘솔이 표시됩니다. npm install

  • 백그라운드에서 프로젝트를 실행하려면 (예 : 일부 serwice) 예를 들어 웹 서버 angular-cli 응용 프로그램을 run-front실행 하면 다음 스크립트를 사용할 수 있습니다 (이름은 -실행 가능해야 함)-( /etc/hosts적절한 도메인을 추가 하려면 파일을 편집해야 함 )


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.