programing

라라벨 패키지 매니페스트php: 정의되지 않은 인덱스: 이름

procenter 2022. 9. 28. 22:19
반응형

라라벨 패키지 매니페스트php: 정의되지 않은 인덱스: 이름

응용 프로그램을 배포하려고 하는데 서버에서 Composer 업데이트를 실행했는데 다음 오류가 발생했습니다.

PackageManifest.php 행 122: 정의되지 않은 인덱스: 이름

이 문제를 해결하려면 어떻게 해야 하나요?

임시 수정으로 다음 파일에서 이 방법을 사용해 보십시오.

vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php

116 행을 찾아 코멘트합니다.

$packages = json_decode($this->files->get($path), true);

위의 주석 행 뒤에 새로운 행을 2개 추가합니다.

$installed = json_decode($this->files->get($path), true);
$packages = $installed['packages'] ?? $installed;

저도 같은 문제가 있어서 명령어를 실행했을 뿐입니다.

composer update

composer.lock 파일이 갱신됩니다.그 후로는 아주 효과가 있었다.

작곡가 깃허브 레포에서 이 문제를 발견했는데 많은 도움이 되었다.

해당 호에서 표시된 표에 따라 Laravel 프레임워크를 5.8에서 5.8.38로 업데이트했더니 오류가 사라졌습니다.

Laravel 블로그 투고도 도움이 됩니다.

Larabel을 업그레이드할 수 없는 경우 Composer 1을 실행하여 그대로 사용할 수 있습니다.

composer self-update --1

저도 같은 문제가 있었어요.

제 경우 컴포저 버전을 다운그레이드하면 문제가 해결되었습니다.

Composer를 2일 동안 4번 업데이트했는데 최신 업데이트에 문제가 있었던 것 같습니다.

제 경우 버전 1.10.1이 해당 버전입니다.

sudo composer self-update --1

잘 됐으면 좋겠다.

최근에 작곡가 2.0.8을 바꿨는데 라라벨 버전은 6.20.27입니다.

이 문제를 해결하려면:

순서 1:

삭제compose.lock파일

순서 2:

의존 관계를 인스톨 합니다.

composer install

저도 이런 문제가 있었고, 또 시도도 했어요.composer self-update --stable, 그러나 결과는 없었습니다.그래서 이 파일이 Laravel 프레임워크에 속한다는 것을 알게 되었습니다.따라서 다음 명령으로 이 문제가 해결되었습니다.

$ composer 업데이트 larabel / larabel / lar

제 경우 컴포저 버전을 다운그레이드하면 문제가 해결되었습니다.

sudo composer self-update --1

https://github.com/composer/composer/issues/9340#issuecomment-716210369

여기에 기재된 바와 같이 당신의 라라벨 버전은 작곡가 2와 충돌할 수 있습니다.

composer update laravel/framework

그럼 문제가 해결됩니다.d

다음 명령어를 실행한 것이 효과가 있었습니다.어쩌면 이게 도움이 필요한 사람에게 도움이 될지도 몰라.

composer update

벤더 폴더와 composer.lock을 삭제하고 실행했습니다.composer install다시. 이걸로 해결됐어.

이 문제를 해결하는 가장 쉬운 방법은

프로젝트에서 composer.lock 파일을 삭제합니다.

달려.composer install

나도 같은 문제에 직면해 있었다.제가 본 라라벨 프레임워크 버전은"laravel/framework": "6.0"버전 앞에 캡을 씌우면 정상적으로 동작합니다. "laravel/framework": "^6.0"

입니다.composer updateLaravel 5.7과 함께 프로젝트를 위해 일했습니다.

나의 경우Laravel 5.7프로젝트 삭제vendor폴더와composer.lock파일로 문제를 해결했습니다.

컴포저의 일부 버전에서는 이 오류가 발생하지만 버전 1.10.20에서는 이 오류가 발생하지 않습니다.

composer self-update 1.10.20
composer install

해결책이 있습니다.

  • 삭제하다vendor폴더입니다.
  • 달려.composer install

사용하지 않다--no-scripts이로 인해 문제가 발생하며, 파일이 생성되는 적절한 폴더는 생성되지 않습니다.PackageManifest.php그리고 다른 사람들은 필요로 합니다.

  • 달려.composer update

이는 파일 내의 버그에 문제가 생기지 않도록 하기 위함입니다.

이것을 사용해 보세요.다음 파일에서 사용할 수 있습니다.

vendor/larabel/framework/src/Illuminate/Foundation/PackageManifest.php

이 줄을 찾아서 코멘트해 주세요.

$packages = json_decode($this->files->get($path), true);

상기의 코멘트 행 뒤에 새로운 행을 2개 추가합니다.

$installed = json_decode($this->files->get($path), true);
$packages = $installed['packages'] ?? $installed;

업데이트 및 컴포저 업데이트를 하지 않고 수정하려는 경우

벤더/판매점에 가서 삭제만 하면 됩니다.installed.json

다음 명령을 실행하면 수정되었습니다.

composer self-update --stable

컴포저를 이전 버전으로 다운그레이드하려면:

composer self-update <version>

예:

composer self-update 1.10.1 

여기 제게 효과가 있었던 해결책이 있습니다.https://github.com/composer/composer/issues/9340#issuecomment-716210369에서는 larabel 프레임워크를 6.18.7로 변경하여 Composer 2와 호환되도록 합니다.

패키지의 업그레이드를 강제할 필요가 없다(실행 중composer update운영 환경에 대해서는 권장하지 않습니다.) 또는 버전 2인 경우 Composer를 다운그레이드합니다.

업데이트에 Composer v1이 필요한 웹 사이트(예: v2로 인해 오류가 발생함)가 있고 버전 v2가 글로벌하게 설치되어 있는 경우 가장 빠른 해결책은 다음과 같습니다.

순서 1

안정된 최신 1.x 컴포저를 다운로드합니다.(수동 다운로드 아래)에 게재되어 있습니다.

순서 2

를 다운로드 받은 작곡가이다.프로젝트(는 composer.json 파일 있다.)의 뿌리 Phar 파일입니다.

3단계

그 작곡가를 사용하여 명령하게 하다.phar 파일입니다.예제:

php composer.phar install

후에 나 그냥 작곡가 설치 시작한laravel 프로젝트를 복제해 봤습니다 나는 같은 문제가 있었다.그리고 나는 약간의 솔루션을 통해 여기서 읽었다.내 생각에는, 그것은 좋은 생각이 아니laravel 핵심을 편집하는 것.하지만 만약 시험을 위한 거야, 왜 안 그런지.

내 경우에는 나의 해결책은composer 업데이트 대신 작곡가 설치.작곡가 업데이트의 경우에는...composer.json에서 패키지를 업데이트 그 composer.lock 파일을 사용하지 않습니다.나와 내 특별한 경우 작품입니다.

컴퓨터 작곡가 버전 2.0.9가 설치되어 있을 때 업그레이드 라벨 프로젝트에서도 같은 문제가 발생하였습니다.

솔루션은 다음과 같습니다.

  1. 프로젝트 내에 벤더 폴더가 있는 경우 삭제합니다.
  2. inside composer.json for laravel version 이 글을 씁니다."laravel/framework": "^6.0"잊지 마세요 ^ 6.0 앞에는 최신 버전의 larabel 6을 설치해야 합니다.
  3. 그리고나서composer update

마침내, 완벽하게 작동한다.

Composer로 업데이트했습니다.2.0.11제가 실수를 했어요.Composer로 다운그레이드됨1.10.20잘 작동했지만 매우 느렸습니다

나처럼 벤더 코드를 변경하지 않고 Composer를 원하는 경우2.0.xLaravel의 버그라는 것을 알고 있으며, Laravel은 마이너 버전(또는 핫픽스)으로 수정했습니다.나는 라라벨을 쓰고 있었다.5.7.9그리고 나의vendor/laravel/framework/src/Illuminate/Foundation/PackageManifest.php ->build()예를 들어 다음과 같습니다.

if ($this->files->exists($path = $this->vendorPath.'/composer/installed.json')) {
    $packages = json_decode($this->files->get($path), true);
}

하지만 Larabel 5.7.29 PackageManifest에서는.php , 같은 파일이 수정되었습니다.

if ($this->files->exists($path = $this->vendorPath.'/composer/installed.json')) {
    $installed = json_decode($this->files->get($path), true);

    $packages = $installed['packages'] ?? $installed;
}

라라벨도 마찬가지야5.6.0버그를 가지고 있으며, 에 고정되어 있습니다.5.6.40 Larabel 5.6.40 PackageManifest.php.각 레벨에서 어느 마이너버전부터 수정이 되었는지는 모르겠지만, 마지막 버전으로 하는 것이 좋습니다.5.7.29,5.6.40또는 버전이 수정되었는지 확인할 수 있습니다.

COMPOSER 2.0은 매우 고속입니다.

컴포넌트를 스스로 업데이트한 후 오류가 발생할 경우 composer를 composer1바꿉니다.
변경만 하면 됩니다.

composer install ...

다음과 같이 입력합니다.

composer1 install ...

이것만!

작곡가 버전2 가 있는 경우는, 라라벨을 6.2 로 업그레이드 합니다.

https://github.com/composer/composer/issues/9340#issuecomment-716210369

컴포넌트 업그레이드를 실행합니다.7층 라라벨에 있는 나를 위한 작업입니다.

언급URL : https://stackoverflow.com/questions/61177995/laravel-packagemanifest-php-undefined-index-name

반응형