내 응용 프로그램 루트에 package.json 파일이 정의되어 있고 실행 npm install -g
하면 package.json, globablly에 정의 된 모든 종속성이 설치됩니다.
그러나 이것은 반대로 작동하지 않는 것 같습니다.
npm uninstall -g
내 응용 프로그램 루트에서 수행 하면 오류가 발생하여 패키지 이름을 전달합니다.
내가 설치 한 동일한 패키지도 제거해야하지 않습니까?
내가 뭘 잘못하고 있니?
내 응용 프로그램 루트에 package.json 파일이 정의되어 있고 실행 npm install -g
하면 package.json, globablly에 정의 된 모든 종속성이 설치됩니다.
그러나 이것은 반대로 작동하지 않는 것 같습니다.
npm uninstall -g
내 응용 프로그램 루트에서 수행 하면 오류가 발생하여 패키지 이름을 전달합니다.
내가 설치 한 동일한 패키지도 제거해야하지 않습니까?
내가 뭘 잘못하고 있니?
답변:
Bash를 사용하는 경우 package.json 파일이있는 폴더로 전환하고 다음을 실행하십시오.
for package in `ls node_modules`; do npm uninstall $package; done;
전역으로 설치된 패키지의 경우 %appdata%/npm
폴더 로 전환하고 (Windows의 경우) 동일한 명령을 실행합니다.
편집 :이 명령은 npm 3.3.6 (노드 5.0)에서 중단됩니다. 이제 .bashrc 파일에서 npm_uninstall_all에 매핑 한 다음 Bash 명령을 사용하고 있습니다.
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
추가 보너스? 훨씬 빠릅니다!
npm uninstall <package>
각 폴더에 대해 실행 합니다. 내가 직접했고 훌륭하게 작동합니다!
npm uninstall
트릭이 유용한 이유입니다.
foreach($package in ls node_modules){npm uninstall $package}
tr is not recognized
이것은 나를 위해 일했습니다.
명령 프롬프트 또는 gitbash를 프로젝트의 node_modules 폴더에 넣고 다음을 실행하십시오.
npm uninstall *
해당 프로젝트의 모든 로컬 패키지를 제거했습니다.
// forcibly remove and reinstall all package dependencies
ren package.json package.json-bak
echo {} > package.json
npm prune
del package.json
ren package.json-bak package.json
npm i
이것은 본질적으로 가짜의 빈 package.json을 만들고 npm prune
node_modules의 모든 것을 제거하도록 호출 하고 원래 package.json을 복원하고 모든 것을 다시 설치합니다.
다른 솔루션 중 일부는 더 우아 할 수 있지만 이것이 더 빠르고 철저하다고 생각합니다. 다른 스레드에서 사람들이 node_modules 디렉토리를 삭제하는 것을 제안하는 것을 보았지만 적어도 Windows의 경우 bin 디렉토리가 누락되어 나중에 npm이 질식합니다. 아마도 Linux에서는 제대로 복원되지만 Windows는 복원되지 않습니다.
npm i
" npm i
"는 누락 된 deps를 설치할뿐만 아니라 package.json과 일치하도록 node_modules를 업데이트합니다.
( 모든 것을 읽을 때까지이 단계를 복제하지 마십시오. )
나에게 언급 된 모든 솔루션이 작동하지 않았습니다. 김 나는에 가서 /usr/lib
거기 실행
for package in `ls node_modules`; do sudo npm uninstall $package; done;
그러나 그것은 또한 제거했습니다 npm
패키지와 패키지의 절반 만 했습니다 (문자 n에 도달 할 때까지).
그래서 노드 가이드에 따라 다시 노드 설치를 시도했습니다.
# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
하지만 설치되지 않았습니다. npm
다시 .
그래서 전체 노드를 다시 설치하기로 결정했습니다.
sudo apt-get remove nodejs
다시 설치하고 위의 가이드에 따라 다시 설치 .
이제 NPM이 다시 작동하지만 글로벌 모듈은 여전히 있습니다. 그래서 나는 디렉토리의 내용을 확인했고 /usr/lib/node_modules
여기서 중요한 것은 npm
. 그래서 위의 명령을 편집하여npm
for package in $(ls node_modules); do if [ "$package" != "npm" ]; then sudo npm uninstall $package; fi; done;
접두사가없는 모든 모듈을 제거했습니다 @
. 그래서 하위 디렉토리에 대한 루프를 확장했습니다.
for package in $(ls node_modules); do if [ ${package:0:1} = \@ ]; then
for innerPackage in $(ls node_modules/${package}); do
sudo npm uninstall "$package/$innerPackage";
done;
fi; done;
내 /usr/lib/node_modules
지금은 npm
링크 된 패키지 만 포함 합니다.
VIKAS KOHLI 및 jedmao를 피기 백 하면이 작업을 수행 할 수 있습니다.
단일 라인 버전 :
npm uninstall `ls -1 node_modules | grep -v ^@ | tr '/\n' ' '` `find node_modules/@* -type d -depth 1 2>/dev/null | cut -d/ -f2-3 | tr '\n' ' '`
여러 줄 버전 :
npm uninstall \
`ls -1 node_modules | grep -v ^@ | tr '/\n' ' '` \
`find node_modules/@* -type d -depth 1 2>/dev/null | cut -d/ -f2-3 | tr '\n' ' '`
또 다른 간단한 옵션은 node_modules 및 package-lock.json을 삭제하는 것입니다.
rm -rf node_modules
rm -rf package-lock.json
그런 다음 npm 패키지를 다시 설치할 수 있습니다.