Node.js에서 사용하지 않는 패키지를 제거하거나 제거하는 npm 명령
Node.js 프로젝트 (더 이상 정의되지 않은)에서 모든 사용되지 않는 (선언되지 않은) 종속성을 단순히 제거하는 방법이 있습니까? package.json
응용 프로그램을 업데이트 할 때 참조되지 않은 패키지를 자동으로 제거하고 싶습니다.
에 npm prune
나열되지 않은 모듈을 제거하려면 실행하십시오 package.json
.
보낸 사람 npm help prune
:
이 명령은 "익스트림"패키지를 제거합니다. 패키지 이름이 제공되면 제공된 이름 중 하나와 일치하는 패키지 만 제거됩니다.
외부 패키지는 상위 패키지의 종속성 목록에 나열되지 않은 패키지입니다.
는 IF
--production
플래그가 지정되면,이 명령은 devDependencies에 지정된 패키지를 제거합니다.
당신이 그렇게 할 수있는 몇 분의 시간에 대해 걱정하지 않는 경우, 해결책은하는 것입니다 rm -rf node_modules
및 npm 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 패키지에 의해 종속성이 충족됩니다.
중복 제거 알고리즘은 트리를 탐색하여 중복이 발견되지 않더라도 트리에서 각 종속성을 최대한 멀리 이동시킵니다. 그러면 평평한 트리와 중복 제거 된 트리가 모두 생성됩니다.
'Programming' 카테고리의 다른 글
파이썬에서 얕은 목록을 평탄화하기 (0) | 2020.02.25 |
---|---|
Sublime Text에서 선택을 소문자 (또는 대문자)로 변환 하시겠습니까? (0) | 2020.02.25 |
ERROR 2002 (HY000) : '/var/run/mysqld/mysqld.sock'소켓을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2). (0) | 2020.02.25 |
목록에 다른 사람이있는 경우 (0) | 2020.02.25 |
응용 프로그램 시작시 응용 프로그램에 루트 뷰 컨트롤러가 있어야합니다 (0) | 2020.02.25 |