와의 차이점은 무엇입니까?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.lock 파일에 저장되어 있는 것과 동일한 종속성을 사용하여 운영 서버 또는 테스트 환경에 애플리케이션을 설치하는 ‘프로덕션 단계’에서 사용됩니다.
달릴 때composer install
잠금 파일을 검색하여 그 안에 포함된 모든 파일을 설치합니다. 찾을 수 없는 경우,composer.json
의존관계를 설치하고 잠금파일을 생성합니다.
달릴 때composer update
그것은 간단히 읽을 수 있다composer.json
의존관계를 설치하고 잠금파일을 갱신합니다(또는 새로운 잠금파일을 만듭니다).
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
파일을 현재 디렉토리에서 처리하여 모든 종속성을 업데이트, 제거 또는 설치합니다.
다음 항목도 참조하십시오.작성자: 중요한 것은 잠금 파일
컴포저 설치
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
2개의 명령어가 필요한 이유.composer.lock으로 설명할 수 있을 것 같아요.
상상해봐, 우린 지금composer.lock
및 인composer.json
, 의존관계가 있습니다."monolog/monolog": "1.0.*"
또는"monolog/monolog": "^1.0"
.
그러면 몇 가지 케이스가 있습니다.
- 현재의 의존관계 버전(예: 1.0.0)에서는 정상적으로 동작하고 있습니다만, 몇 달 후에 의존관계 업데이트(예: 1.0.1)로 버그가 발생할 가능성이 있습니다.
- 다른 팀 구성원은 다른 종속 버전을 사용할 수 있습니다(실행하는 경우
composer install
다른 시간에.
항상 EXCRUCT 버전을 사용하여composer.json
예를 들어"monolog/monolog": "1.0.1"
?
우리는 여전히 필요하다.composer.lock
왜냐면composer.json
는 의존성의 기본 버전만 추적하고 의존성의 버전은 추적할 수 없습니다.
모든 종속성이 EXCRUCT 버전도 사용하는 경우에는 어떻게 해야 합니까?
먼저 EXCRUCT 버전을 사용하는 모든 의존관계에서 시작하지만 상관하지 않는다고 가정해 보십시오.composer.lock
. 그러나, 몇달 후에, 이런 의존의 의존성은 EXACT 버전에 사용하지 않는 새로운 종속성(또는 오래 된 의존도를 업데이트)을 추가한다.그럼 신경 쓰는 것이 낫다.composer.lock
맨 처음에
그 외에도, 의미와 관련된 버전의 정확한 버전에 대한 잇점이 있다.우리는 개발과 도서관는 동안 여러번 자주 버그 수정 같은 작은 변화가 있는 의존도를 업데이트할 수 있습니다.그리고 그것이 의미 버전을 사용한다 의존을 높이기 위해서 더 쉽다.
사이에 가장 좋은 차이composer update
그리고.composer install
컴포저 설치
직접 composer.json 파일에 추가할 필요가 있어 의존성을 추가하려면.
만약composer.lock 파일이 존재, 정확히 이 파일에 specificated 것을 설치할 것이다.
- 또는 composer.json 파일을 읽고 설치해야 하는 종속성을 확인합니다.
- 프로젝트 정보를 사용하여 composer.lock을 작성합니다(설치된 종속성).
이 명령으로 갱신되는 컴포넌트는 없습니다.
컴포저 갱신
종속성을 추가하거나 제거하려면 composer.json 파일에 종속성을 수동으로 추가해야 합니다.
- composer.lock 파일은 무시됩니다.
- composer.json 파일의 의존관계가 설치 및 갱신됩니다(의존관계가 인스톨 되어 있지 않은 경우는 다운로드 됩니다).
composer.json 파일을 수동으로 변경할 수 없거나(또는 실제로 쉬운 라이브러리를 추가하거나 제거하는 방법을 모르면 파일의 require 속성에 종속성 및 버전 이름을 추가하기만 하면 됩니다) 명령줄을 사용하는 대신 composer.json 파일을 다음과 같은 특수한 기능을 사용할 수 있습니다.
작곡가가 필요하다
예를 들어 명령줄에 종속성을 추가하려면 간단히 실행합니다.
composer require twig/twig
- composer.json 파일이 자동으로 변경되어 새로운 의존관계가 추가됩니다.
- 종속성이 프로젝트에 다운로드됩니다.
컴포넌트 삭제
사용하지 않는 의존관계를 삭제하고 싶은 경우 다음과 같이 수행합니다.
composer remove twig/twig --update-with-dependencies
- 트윅은 그의 모든 의존자들과 함께 제거될 것이다.