Programing

모든 npm 모듈을 전체적으로 제거하는 명령?

lottogame 2020. 3. 1. 15:36
반응형

모든 npm 모듈을 전체적으로 제거하는 명령?


모든 전역 npm 모듈을 제거하는 명령이 있습니까? 그렇지 않다면 무엇을 제안합니까?


다음 명령은 모든 전역 npm 모듈을 제거합니다. 참고 : Windows에서는 작동하지 않습니다. 작동하는 Windows 버전은 Ollie Bennett 's Answer를 참조하십시오 .

npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm

작동 방식은 다음과 같습니다.

  • npm ls -gp --depth=0모든 글로벌 최상위 모듈을 나열합니다 ( ls에 대한 cli 설명서 참조 ).
  • awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'실제로 npm 자체가 아닌 모든 모듈을 인쇄합니다 (로 끝나지 않음 /npm)
  • xargs npm -g rm 이전 파이프를 통해 온 모든 모듈을 전체적으로 제거

Windows를 사용하는 사용자의 경우 전 세계적으로 설치된 모든 npm 패키지를 제거하는 가장 쉬운 방법은 다음 내용을 삭제하는 것입니다.

C:\Users\username\AppData\Roaming\npm

%appdata%(탐색기, 실행 프롬프트 또는 시작 메뉴에서) 입력하여 빠르게 여기에 올 수 있습니다 .


나는 Kai Sternad 의 솔루션을 시도했지만 나에게 불완전한 것처럼 보였습니다. awk뎁스 트리 자체에서 마지막에 남은 특수 기호가 많이 있었습니다.

그래서 Kai Sternad 의 솔루션을 수정했습니다 ( 캐시미어 아이디어의 약간의 도움으로 ).

npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm

npm ls -gp --depth=0전 세계적으로 설치된 모든 npm 모듈을 구문 분석 가능한 형식 으로 나열 합니다.

/home/leonid/local/lib
/home/leonid/local/lib/node_modules/bower
/home/leonid/local/lib/node_modules/coffee-script
...

awk -F/node_modules/ '{print $2}' 경로에서 모듈 이름을 추출하여 전체적으로 설치된 모든 모듈 목록을 형성합니다.

grep -vE '^(npm|)$' npm 자체와 빈 줄을 제거합니다.

xargs -r npm -g rmnpm -g rm목록에서 각 모듈을 호출 합니다.

Kai Sternad 의 솔루션 과 마찬가지로 * nix에서만 작동합니다.


sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}'  | sudo xargs npm remove -g

나를 위해 일했다

  • sudo npm list -g --depth=0. 설치된 모든 최상위 레벨을 나열합니다.
  • awk -F ' ' '{print $2}' ├──를 제거
  • awk -F '@' '{print $1}' '@'이전에 부분을 가져옵니다.
  • sudo xargs npm remove -g 패키지를 전체적으로 제거

Powershell을 사용하는 경우 :

npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }

캐시를 지우려면

npm cache clear

%appdata%/npm디렉토리 로 전환 하고 다음을 실행하십시오 ...

for package in `ls node_modules`; do npm uninstall $package; done;

편집 :이 명령은 npm 3.3.6 (노드 5.0)에서 중단됩니다. 이제 .bashrc 파일에서 npm_uninstall_all에 매핑 된 다음 Bash 명령을 사용하고 있습니다.

npm uninstall `ls -1 node_modules | tr '/\n' ' '`

보너스가 추가 되었습니까? 더 빠릅니다!

https://github.com/npm/npm/issues/10187

package.json (NPM)에 나열된 모든 종속성을 어떻게 제거합니까?


설치 한 모든 패키지를 제거하려면 npm -g ls명령을 사용하여 찾은 다음 npm -g rm제거하십시오.


Windows에서 "C : \ Users {username} \ AppData \ Roaming"디렉토리로 이동하여 수동으로 npm 폴더를 제거하십시오.


jq를 설치 했다면 grep / awk / sed 없이도 갈 수 있습니다 :

npm ls -g --json --depth=0 |
  jq -r '.dependencies|keys-["npm"]|join("\n")' |
  xargs npm rm -g

데비안과 파생에서 다음을 사용하여 jq설치할 수 있습니다 .

sudo apt-get install jq

OP에서 OS를 지정하지 않았습니다. 들어 윈도우 ,이 스크립트는 지역을 핵무기하는 데 사용할 수있는 사용자는 글로벌 모듈과 캐시입니다.

나는 리눅스 에서 전역 루트가 주어진 사용자 대신 시스템에 실제로 전역 적이 라는 것을 알았습니다 . 따라서 글로벌 루트를 삭제하는 것은 공유 시스템에 적합하지 않을 수 있습니다. 그 외에도, 관심이 있다면 스크립트를 bash로 이식 할 수 있습니다 .

들어 윈도우 , cmd를 파일로 저장 실행합니다.

@ECHO OFF
SETLOCAL EnableDelayedExpansion 
SETLOCAL EnableExtensions

SET /A ecode=0

:: verify
SET /P conf="About to delete all global and local npm modules and clear the npm cache. Continue (y/[n])?
IF /I NOT "%conf%"=="y" (
  ECHO operation aborted
  SET /A ecode=!ecode!+1
  GOTO END
)

:: wipe global and local npm root
FOR %%a IN ("" "-g") DO (

  :: get root path into var
  SET cmd=npm root %%~a
  FOR /f "usebackq tokens=*" %%r IN (`!cmd!`) DO (SET npm_root=%%r)

  :: paranoid
  ECHO validating module path "!npm_root!"
  IF "!npm_root:~-12!"=="node_modules" (
    IF NOT EXIST "!npm_root!" (
      ECHO npm root does not exist "!npm_root!"
    ) ELSE (
      ECHO deleting "!npm_root!" ...
      :: delete
      RMDIR /S /Q "!npm_root!"
    )
  ) ELSE (
      ECHO suspicious npm root, ignoring "!npm_root!"
  )
)

:: clear the cache
ECHO clearing the npm cache ...
call npm cache clean

:: done
ECHO done

:END

ENDLOCAL & EXIT /b %ecode%

이 코드를 사용하여 패키지를 설치 제거하십시오.

npm rm -g <package_name>

모두 잘 했어 이것은 하나의 라인 코드로 제안을 결합한 것입니다.

npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`

무엇이 다른가요? 다음과 같은 단일 명령으로 제거가 수행됩니다.npm rm -g *** *** ***


Windows에 있고 모든 node_modules를 제거 / 제거하려면 다음 단계를 수행해야합니다.

  1. Windows 명령 프롬프트로 이동
  2. node_modules 디렉토리로 이동하십시오 ( node_modules 폴더 내부 아님 ).
  3. 아래 명령을 입력하고 1-2 분 동안 제공하면 node_module 내의 모든 디렉토리가 제거됩니다

     rmdir /s /q node_modules
    

이것이 Windows의 일부를 도울 수 있기를 바랍니다.


Intellij Webstorm이있는 경우 내장 그래픽 패키지 관리자를 사용할 수 있습니다.

루트로 열고 emtpy 프로젝트를 만듭니다. 이동

파일> 설정> 언어 및 프레임 워크> Node.js 및 NPM

설치된 모든 패키지가 표시됩니다. 제거는 쉽고, 제거하려는 패키지를 선택하거나 선택 취소 할 수 있습니다. Ctrl + a도 마찬가지입니다.


npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g

sed 솔루션

npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g

다음과 같이 간단합니다. rm -rf ~/.npm


콘솔에 넣으십시오.

sudo npm list -g --depth = 0입니다. | awk -F '' '{print $ 2}'| awk -F '@' '{print $ 1}'| sudo xargs npm 제거 -g

그것은 나를 위해 일한다 ...

참고 URL : https://stackoverflow.com/questions/9283472/command-to-remove-all-npm-modules-globally



반응형