작곡가에게 포크를 어떻게 요구합니까?
이건 내 거야composer.json
Github에서 Nodge의 lessphp 프로젝트 포크를 사용하고 싶다.
"repositories": [{
"type": "package",
"package": {
"version": "dev-master",
"name": "nodge/lessphp",
"source": {
"url": "https://github.com/Nodge/lessphp.git",
"type": "git",
"reference": "master"
},
"autoload": {
"classmap": ["lessc.inc.php"]
}
}
}],
"require": {
"php": ">=5.3.3",
"nodge/lessphp": "dev-master"
},
그러나 실행 시 이 오류가 발생합니다.composer update
:
nodge/lessphp dev-master -> 일치하는 패키지를 찾을 수 없습니다.
나는 이 포크를 어떻게 정확하게 요구하는지 모르겠다.
가장 일반적이고 쉬운 방법은 VCS 저장소를 사용하는 것입니다.
저장소로 포크를 추가하고 사용자 지정 분기를 가리키도록 버전 제약 조건을 업데이트하기만 하면 됩니다.커스텀 브랜치명 앞에 가 붙어야 합니다.
monolog/monolog를 fork하여 bugfix라는 브랜치를 작성했다고 가정하면 다음과 같이 composer.json을 업데이트합니다.
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/igorw/monolog"
}
],
"require": {
"monolog/monolog": "dev-bugfix"
}
}
bugfix 브랜치를 지정하는 경우를 제외하고 require 문을 변경하지 마십시오.아직 업스트림패키지를 참조하고 있습니다(monolog/monolog
, 퍼스널 포크가 아닙니다( ).igorw/monolog
)와 브랜치명 앞에 붙습니다.dev-
자세한 내용은 문서에서 확인할 수 있습니다.
VCS 사용 방법:
"name": "test/test",
"repositories": [{
"type": "vcs",
"url": "http://github.com/Nodge/lessphp"
}],
"require": {
"leafo/lessphp": "dev-master"
},
단, 이 기능이 있는 모듈이 필요한 경우composer.json
,동작되지 않습니다.포크가 아닌 원래 프로젝트를 설치합니다.
예
"name": "example/example",
"require": {
"test/test": "dev-master"
},
저장소를 다시 언급해야 합니다.그게 정상인가요?
@Neilime answer를 사용할 수 없는 경우 포크가 다른 브랜치를 사용하는지 확인하십시오.
예를 들어, 변경 내용을 포크의 브랜치로 푸시합니다.my-bugfix
, 추가하지 않음dev-
composer.json에는 prefix를 추가해야 합니다.작성자 파일은 다음과 같습니다.
"repositories":
[
{
"type": "vcs",
"url": "http://github.com/yourname/packageName"
}
],
"require": {
"owner/packageName": "dev-my-bugfix"
},
저는 여러 가지 방법을 시도해 보았지만, 이 게시물을 받은 후 빛을 보았고, 그것은 완벽하게 작동했습니다.
다음 작업을 수행해야 합니다.
1-저장소 포크
2- 브런치를 만들고 필요한 변경을 합니다.
3- 저장소 라벨을 composer.json에 추가합니다.
"repositories": [
{
"type": "vcs",
"url": "https://github.com/user/yourforkname"
}
]
4- 프로젝트 내 명령줄에 다음과 같이 포크가 필요합니다.
composer require vendor/packagename:dev-branchname
그리고 Voila!!
포크 버전이 작동 중입니다.
Composer 문서 http://getcomposer.org/doc/05-repositories.md#vcs,에 따르면 포크가 아닌 원래 저장소를 지정하면 됩니다.require
("고객님의 경우 "classge/lessphp")Composer가 포크를 설치합니다(벤더의 코드를 참조).
그래서 지금은 2019년이고, 여기 있는 대부분의 답은 이미 정답입니다.
단, 자신이 작성한 포크의 특정 브랜치가 필요한 경우에는 먼저 사용 가능한 버전/태그 목록을 작성자에게 제출하도록 지시합니다.덕분에 많은 시간을 절약할 수 있었어요.
「 」를 사용한 한 예spatie/laravel-backup
★★★★★★★★★★★★★★★★★★.
「」를 추가해 주세요.repositories
json.json .
"repositories": [{
"type": "vcs",
"url": "https://github.com/holymp2006/laravel-backup"
}]
사용 가능한 버전/태그 가져오기
composer show "spatie/laravel-backup" --all
.versions
후, 그 「」을 합니다.
composer require spatie/laravel-backup:v5.x-dev
패키지 정의에 보통 "dist" 노드를 추가합니다.이런 식으로 사용하는 데 문제가 있었던 적은 없습니다.
근데 어디서 이런 속임수를 썼는지 기억이 안 나네요. 더 이상 설명을 드리자면요.
{
"repositories": [
{
"type": "package",
"package": {
"version": "dev-master",
"name": "nodge/lessphp",
"source": {
"url": "https://github.com/Nodge/lessphp.git",
"type": "git",
"reference": "master"
},
"autoload": {
"classmap": ["lessc.inc.php"]
},
"dist": {
"url": "https://github.com/Nodge/lessphp/archive/master.zip",
"type": "zip"
}
}
}
],
"require": {
"nodge/lessphp": "*"
}
}
응용 프로그램을 사용했을 때, 포킹하고 수정한 의존 관계가 필요했을 때, 수용된 답변과 명확한 답변이 모두 나에게 효과가 있었습니다.나는 이 경우에도 여전히 인정된 답을 사용할 것이다.
하지만, 제가 Packagist에 제 자신을 배포하고 싶었을 때, 이 접근법은 더 이상 효과가 없었습니다.
「이러다」, 「이러다」가 됩니다. -> no matching package found.
에러 메시지
이 답변과 연결된 Composer 문서는 repo 설정이 최상위 수준이어야 함을 나타냅니다.composer.json
이 하는 는, 「」, 「」, 「」, 「」, 「」에그을 추가할 필요가 있습니다composer.json
file too: 설치 프로세스에 불필요한 혼란이 가중됩니다.
대신, 나는 Packagist에게 내 포크를 발행했다.포크는 눈살을 찌푸리게 하지만, 이 새로운 패키지에 사용하기 때문에 유지 보수용 포크로 간주될 것으로 알고 있습니다.
배포하고 싶은 패키지나 라이브러리에서 이러한 문제가 있는 사용자에게 도움이 되었으면 합니다.
언급URL : https://stackoverflow.com/questions/13498519/how-to-require-a-fork-with-composer
'it-source' 카테고리의 다른 글
JavaScript에서 "function*"란 무엇입니까? (0) | 2023.02.02 |
---|---|
SSL/TLS 보호를 위해 openssl 확장이 필요합니다. (0) | 2023.02.02 |
항상 소수점 2자리를 표시하는 형식 번호 (0) | 2023.02.02 |
Aria(MariaDB)에서 트랜잭션을 활성화하려면 어떻게 해야 합니까? (0) | 2023.02.02 |
자체 참조 테이블에서 주문 기준 (0) | 2023.02.02 |