작성기에서 사용하지 않는 종속성을 제거하는 방법은 무엇입니까?


209

작곡가와 함께 패키지를 설치했으며 종속성으로 다른 많은 패키지를 설치했습니다.

이제로 기본 패키지를 제거 composer remove packageauthor/packagename했지만 이전의 모든 종속성은 제거되지 않았습니다. 작곡가가 정리 composer.json하고 의존성 에 따라 필요한 패키지 만 정리할 것을 기대 했습니다.

작성기가 강제로 사용하지 않는 모든 패키지를 정리하고 제거하려면 어떻게해야합니까?

답변:


375

이를 수행하는 올바른 방법은 다음과 같습니다.

composer remove jenssegers/mongodb --update-with-dependencies

나는 그 깃발이 무엇을 할 것인지에 대해 명확하지 않다는 것을 인정해야한다.

최신 정보

composer remove jenssegers/mongodb

현재 v1.0.0 개발자 - 베타 --update-with-dependencies 기본이고 더 이상 필요하지 않습니다.


솔루션이 제공되는 github에서 문제를 시작한 @Yehosef에게 감사하지만, 답변을 업데이트하지 않았기 때문에 모든 사람의 편의를 위해 직접 작성하기로 결정했습니다.
Denis Pshenov

고마워, 나는 그들의 토론을 끝내지 못했습니다.
Lorenz Meyer

3
한 가지 알아 두어야 할 점 : 이미 알고 composer remove …있지만 --update-with-dependencies이 질문을 우연히 발견 할 때까지 잊어 버린 경우 후속 호출이 composer remove모든 종속성을 종료하지는 않습니다. install그런 다음 되돌리기, 작곡가 , 그리고 다음 단계 로 돌아 가야합니다.composer remove --update-with-dependencies
Mike G

이제 다음과 같은 메시지가 나타납니다.You are using the deprecated option "update-with-dependencies". This is now default behaviour. The --no-update-with-dependencies option can be used to remove a package without its dependencies
Pathros

4
패키지 제거 후 정리는 어떻습니까? - 그 @LorenzMeyer의 대답은 간다의 : composer update@LorenzMeyer이 대답 엄지 손가락
알렌 Linatoc

29

실제로 매우 쉽습니다.

composer update

이 모든 작업을 수행하지만 다른 패키지도 업데이트합니다.

다른 패키지를 업데이트하지 않고 패키지를 제거하려면 다음과 같이 명령에서 해당 패키지를 지정하십시오.

composer update monolog/monolog

monolog/monolog패키지 를 제거합니다 .

그럼에도 불구하고 자동으로 제거 할 수없고 수동으로 제거해야하는 빈 폴더 나 파일이 남아있을 수 있습니다.


8
불행한 점은 이전 버전을 제거하는 대신 패키지를 강제로 업데이트한다는 것입니다. 예를 들어, 두 개의 패키지 AAA / aaa ~ 1과 버전 BBB / bbb ~ 2가 있고 현재 AAA / aaa 버전 1.0이고 1.1을 릴리스 한 경우 BBB / bbb를 삭제하면 자동으로 업데이트됩니다 (그렇지 않을 수 있음) 내가하고자
했던

네 말이 맞아 더 나은 해결책이 있다면 돌아와서 답으로 게시하십시오.
Lorenz Meyer

3
나는 아직-다른 사람들 에게이 접근법의 함정을 지적하고 싶습니다.
Yehosef

그것은 실제로 작곡가 설치에 깃발이어야합니다 .. 뭔가--prune
Yehosef

1
당신이 아이디어를 좋아한다면 당신은 그것에 투표 할 수 있습니다 -github.com/composer/composer/issues/3751
Yehosef

20

다음 명령은 완벽하게 동일하게 수행됩니다.

rm -rf vendor

composer install 

2
이것은 가장 깨끗한 옵션 인 것 같습니다. vendor 디렉토리를 삭제하고 Composer가 모든 것을 새로 가져 오도록하십시오.
Machavity

4
이것은 npm "나의 하루를 저장"스타일;)
r34

composer install사용하지 않는 패키지를 자동으로 삭제합니다
Yidir

10

그냥 실행하십시오 composer install- vendor디렉토리가 종속성을 반영 하게합니다 .composer.lock 파일의 .

즉, 누락 된 공급 업체를 삭제합니다 composer.lock .

이 작업을 실행하기 전에 작성기 자체를 업데이트하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.