npm uninstall을 사용할 때 package.json에서 종속성 자동 제거


84

다음을 npm init사용하여 package.json에 종속성을 추가 할 수 있습니다.

npm install package --save

그리고 나는 uninstall패키지를 원하고 다음을 수행하여 그렇게합니다.

npm uninstall package

하지만 수동으로 파일로 이동하여 해당 줄을 삭제할 필요없이 내 package.json도 그에 따라 업데이트되기를 원합니다.

npm 문서에서 다음과 같이 말합니다.

엄밀히 말하면 추가 적이므로 정말 좋은 이유없이 package.json에서 옵션을 삭제하지 않습니다.

그래서 저는 이것이 가능한지 알고 싶었습니다.


(--save) 플래그로 설치할 때마다 내 종속성이 package.json에 자동으로 추가되기 때문에 패키지를 제거 할 때마다 package.json에서 종속성을 제거하는 방법이 있는지 궁금합니다.
비명

답변:


150

동일한 --save플래그를 사용하십시오 . 다음을 사용하여 종속성을 설치 한 경우 :

$> npm install grunt-cli --save

package.json이 업데이트되면 다음을 사용하여 제거 할 수 있습니다.

$> npm uninstall grunt-cli --save

'save'플래그는 방금 수행 한 작업에 따라 package.json을 업데이트하도록 npm에 지시합니다.


3
ember-cli와 함께 npm을 사용하고 있으며 --save-dev대신 --save.
gerry3

4
--save-dev를 사용하여 설치 한 경우 --save는 dependenciespackage.json 파일 의 섹션에 저장되는 반면 --save-dev는devDependencies
Mike '

7
이 질문을 게시 한 이후로 멀리 왔으며 여기에 약간의 전문가 팁이 있습니다. 을 사용 npm i <package_name> -S하여 dependencies목록 npm i <package_name> -D에 추가하거나 dev-dependencies. npm rm <package_name> -S또는 제거에도 동일한 플래그가 적용됩니다.npm rm <package_name> -D
2015

1
그러나 이들은 단순히 --save 및 --save-dev에 해당하는 축약 형 플래그입니다. npm help모든 플래그와 그에 해당하는 단축어는를 참조하십시오 . (-S 또는 --save를 사용하여 설치된 모든 항목은 둘 중 하나를 사용하여 제거됩니다. npm은 다른 것으로 인식하지 않습니다. -S에 대해 "적은 타이핑")
Mike 'Pomax'Kamermans

1
당신은 남자들 사이의 성인입니다.
John Von Neumann

0

제 경우에는 --save가 ionic-check에서 제안한 명령 인 package.json에서 항목을 지우지 않았습니다. 은 제거가 오류와 함께 종료되면 package.json은 업데이트되지 않을 것이라고 생각합니다. package.json을 수동으로 변경하려면 이것은 지루하지만 내가 추측하는 유일한 방법은

최신 정보

활성화 된 다른 패키지에 종속 된 패키지를 제거 할 때 오류 / 경고로 인해 제거가 실패 할 수있는 경우 안전한 방법은 사용 가능한 도구가 있는지 확실하지 않은 종속성 그래프, 이러한 작업에서 편리한 도구, 경고를 따르는 것입니다. "피어 종속성을 설치해야합니다 .."라는 메시지는 패키지를 제거 할 때 의미가 없습니다.


1
이것은 필요하지 않습니다. dependencies목록에있는 경우 제거 uninstall --save 해야하는 항목이 있는지 여부에 관계없이 제거 해야 합니다. NPM은 다소 영리한 종속성 평면화를 사용하므로 종속성 목록에 (명시 적으로) X가 있고 X --save를 제거하면 제거됩니다. 그러나, 여러 종속 목록, 그리고 기억 --save과 동일하지 않습니다 --save-dev, --save-prod또는 --save-optional. 또한 예 : uninstall오류가 발생하면 NPM이 해당 오류에서 중지됩니다. 더 이상 정확성을 보장 할 수 없기 때문에 계속하려고하지 않습니다.
Mike 'Pomax'Kamermans
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.