Programming

Node.js에서 사용하지 않는 패키지를 제거하거나 제거하는 npm 명령

procodes 2020. 2. 25. 22:58
반응형

Node.js에서 사용하지 않는 패키지를 제거하거나 제거하는 npm 명령


Node.js 프로젝트 (더 이상 정의되지 않은)에서 모든 사용되지 않는 (선언되지 않은) 종속성을 단순히 제거하는 방법이 있습니까? package.json응용 프로그램을 업데이트 할 때 참조되지 않은 패키지를 자동으로 제거하고 싶습니다.


npm prune나열되지 않은 모듈을 제거하려면 실행하십시오 package.json.

보낸 사람 npm help prune:

이 명령은 "익스트림"패키지를 제거합니다. 패키지 이름이 제공되면 제공된 이름 중 하나와 일치하는 패키지 만 제거됩니다.

외부 패키지는 상위 패키지의 종속성 목록에 나열되지 않은 패키지입니다.

는 IF --production플래그가 지정되면,이 명령은 devDependencies에 지정된 패키지를 제거합니다.


당신이 그렇게 할 수있는 몇 분의 시간에 대해 걱정하지 않는 경우, 해결책은하는 것입니다 rm -rf node_modulesnpm install로컬 모듈을 다시 다시.


npm-prune사용 하여 불필요한 패키지를 제거 할 수 있습니다 .

npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]

이 명령은 "익스트림"패키지를 제거합니다. 패키지 이름이 제공되면 제공된 이름 중 하나와 일치하는 패키지 만 제거됩니다.

외부 패키지는 상위 패키지의 종속성 목록에 나열되지 않은 패키지입니다.

는 IF --production의 플래그가 지정되거나 NODE_ENV의 환경 변수로 설정되어 생산 ,이 명령은 지정된 패키지를 제거합니다 devDependencies을 . 설정 --no-생산하는 것은 부정 할 NODE_ENV이 설정되고 생산 .

경우 --dry-실행 플래그가 사용되는 변경은 실제로 이루어지지 않습니다.

는 IF --json 플래그가 다음 사용되는 변경 NPM 자두 만든을 (또는로 만든 것 --dry-실행 ) JSON 객체로 인쇄됩니다.

패키지 잠금이 활성화 된 정상 작동에서 모듈이 설치되면 외부 모듈이 자동으로 제거되며 --production 플래그 와 함께이 명령 만 필요합니다 .

패키지 잠금을 비활성화 한 경우 외부 모듈은 제거되지 않으며 npm prune 을 때때로 실행 하여 제거 할 수 있습니다.

중복을 줄이기 위해 npm-dedupe 사용

npm dedupe
npm ddp

로컬 패키지 트리를 검색하고 종속성을 트리 위로 더 이동하여 전체 구조를 단순화하려고 시도합니다. 여기서 여러 종속 패키지가보다 효과적으로 공유 할 수 있습니다.

예를 들어,이 종속성 그래프를 고려하십시오.

a
+-- b <-- depends on c@1.0.x
|    `-- c@1.0.3
`-- d <-- depends on c@~1.0.9
     `-- c@1.0.10

이 경우 npm-dedupe 는 트리를 다음과 같이 변환합니다.

 a
 +-- b
 +-- d
 `-- c@1.0.10

노드 모듈 검색의 계층 적 특성으로 인해 b와 d는 트리의 루트 수준에서 단일 c 패키지에 의해 종속성이 충족됩니다.

중복 제거 알고리즘은 트리를 탐색하여 중복이 발견되지 않더라도 트리에서 각 종속성을 최대한 멀리 이동시킵니다. 그러면 평평한 트리와 중복 제거 된 트리가 모두 생성됩니다.

참고 URL : https://stackoverflow.com/questions/21417014/npm-command-to-uninstall-or-prune-unused-packages-in-node-js



반응형