의 차이점은 무엇입니까 composer update
와는 composer install
?
의 차이점은 무엇입니까 composer update
와는 composer install
?
답변:
작곡가 업데이트
composer update
에 명시된대로 귀하의 의존성을 업데이트합니다 composer.json
예를 들어이 패키지가 종속성으로 필요한 경우 :
"mockery/mockery": "0.9.*",
실제로 0.9.1
패키지 버전을 설치 한 경우 실행 composer update
하면이 패키지가 업그레이드됩니다 (예 : 0.9.2
이미 릴리스 된 경우)
자세하게 composer update
는 :
composer.json
composer.json
composer.lock
설치된 패키지 버전을 저장하도록 업데이트작곡가 설치
composer install
아무것도 업데이트하지 않습니다. composer.lock
파일에 지정된 모든 종속성을 설치 합니다.
상세히:
composer.lock
파일이 존재 하는지 확인하십시오 (없는 경우 실행 composer-update
하여 작성하십시오).composer.lock
파일 읽기composer.lock
파일에 지정된 패키지를 설치 하십시오.설치시기 및 업데이트시기
composer update
composer.json
파일 에서 지정한 내용에 따라 프로젝트 패키지를 업그레이드하기 위해 주로 '개발 단계'에서 사용 됩니다.
composer install
주로 '배포 단계'에서 작성기 또는 테스트 환경에 응용 프로그램을 설치하는 데 사용되며, composer 업데이트로 작성된 composer.lock 파일에 저장된 동일한 종속성을 사용합니다.
composer global update
로컬 시스템 (에 글로벌 저장소에 업데이트 종속성 COMPOSER_HOME
ENV 변수)
composer update
로컬 시스템에서 실행 하고 응용 프로그램을 테스트 한 다음 프로덕션 서버에 composer.lock을 업로드하고 실행해야합니다.composer install
composer install
composer.lock
존재하는
경우composer.lock
파일 에서 종속성을 처리하고 설치 합니다.composer.lock
하지 않는 경우 .
composer.json
.composer.lock
설치된 패키지를 기반으로 파일을.에 따라 : composer help install
:
install 명령은
composer.lock
현재 디렉토리에서 파일을 읽고 처리 한 후 해당 파일에 요약 된 모든 라이브러리 및 종속성을 다운로드하여 설치합니다. 파일이 존재하지 않으면 찾아서composer.json
동일한 작업을 수행합니다.
composer update
composer.json
파일의 종속성을 처리 합니다 (설치, 업데이트 및 제거).composer.lock
변경 사항에 따라 파일을 작성 하거나 업데이트합니다 .에 따라 : composer help update
:
update 명령은
composer.json
현재 디렉토리에서 파일을 읽고 처리하며 모든 종속성을 업데이트, 제거 또는 설치합니다.
사이의 최적의 차이 composer update
와composer install
작곡가 설치
종속성을 추가하려면 composer.json 파일에 수동으로 추가해야합니다.
composer.lock 파일이 존재하면이 파일에 지정된 것을 정확하게 설치하십시오
이 명령으로 어떤 구성 요소도 업데이트되지 않습니다.
작곡가 업데이트
종속성을 추가하거나 제거하려면 composer.json 파일에 수동으로 추가해야합니다.
composer.json 파일을 수동으로 수정하거나 수정할 수없는 경우 (또는 실제로 쉬운 라이브러리를 추가하거나 제거하는 방법을 모르는 경우 종속성 및 버전 이름을 파일의 require 특성에 추가) 대신 커맨드 라인을 사용하는 것이 좋습니다. 작곡가는 이것을 위해 특별한 기능을 가지고 있습니다 :
작곡가 필요
예를 들어 커맨드 라인에 의존성을 추가하려면 간단히 실행합니다.
composer require twig/twig
작곡가 제거
사용하지 않는 의존성을 제거하려면 간단히 다음을 실행합니다.
composer remove twig/twig --update-with-dependencies
if(composer.lock existed){
installs dependency with EXACT version in composer.lock file
} else {
installs dependency with LATEST version in composer.json
generate the composer.lock file
}
composer update = remove composer.lock -> composer install
왜 우리는 두 가지 명령이 필요합니다. composer.lock으로 설명 할 수 있다고 생각합니다.
상상, 우리는 하지 마십시오 가 composer.lock
와의 composer.json
종속성이 "monolog/monolog": "1.0.*"
또는 "monolog/monolog": "^1.0"
.
그런 경우가 있습니다.
composer install
다른 시간에 실행 되는 경우 다른 종속성 버전을 가질 수 있습니다 .우리가 항상 composer.json
같은 정확한 버전을 사용한다면 "monolog/monolog": "1.0.1"
어떨까요?
우리는 여전히 의존성의 주 버전을 추적 composer.lock
하기 때문에 composer.json
의존성의 종속성 버전을 추적 할 수 없기 때문에 여전히 필요합니다 .
모든 종속성 종속성이 EXACT 버전도 사용하는 경우 어떻게됩니까?
EXACT 버전을 사용하는 모든 종속성으로 시작한 다음 신경 쓰지 않는다고 상상해보십시오 composer.lock
. 그러나 몇 달 후 새로운 종속성을 추가하거나 오래된 종속성을 업데이트하면이 종속성의 종속성이 EXACT 버전을 사용하지 않습니다. 그런 다음 composer.lock
처음 에 관리하는 것이 좋습니다 .
게다가 정확한 버전보다 의미 버전의 장점이 있습니다. 개발하는 동안 종속성을 여러 번 업데이트 할 수 있으며 라이브러리에는 종종 버그 수정과 같은 약간의 변경 사항이 있습니다. 그런 다음 시맨틱 버전을 사용하는 종속성을 업그레이드하는 것이 더 쉽습니다.