Laravel 5 Nieudane otwarcie wymagało bootstrap /../ vendor / autoload.php


366

Niedawno zainstalowałem Laravela 5 przez kompozytora. Próbowałem utworzyć nowy kontroler przy użyciu narzędzia rzemieślnika i pojawia się następujący błąd:

bootstrap /../ vendor / autoload.php. Nie można otworzyć strumienia: brak takiego pliku lub katalogu. Folder „dostawca” nie istnieje.

Czy coś brakuje?

Odpowiedzi:


307

Uruchom kompozytora za pomocą --no-scripts

composer update --no-scripts  

To naprawi problem. Próbowałem tego na komputerach Mac i Linux.


14
Czasami po uruchomieniu: „instalacja kompozytora” również pojawia się ten błąd, więc najlepszą opcją jest najpierw: „instalacja kompozytora - bez skryptów”, a następnie normalne uruchomienie instalacji kompozytora.
herohat

3
Dokumentacja kompozytora: --no-scripts: Pomija wykonywanie skryptów zdefiniowanych w composer.json. ( getcomposer.org/doc/03-cli.md#update )
Aine

O wiele lepiej jest użyć instalacji kompozytora, ponieważ uruchomi on wszystko, co niezbędne do zainstalowania wszystkich zależności, w tym skryptów.
Leandro Jacques

błąd Kompozytor nie może znaleźć pliku composer.json w C: \ kompozytor Aby zainicjować projekt, należy utworzyć plik composer.json zgodnie z opisem w sekcji „Pierwsze kroki z getcomposer.org
PHPFan

composer installnie pracował dla mnie, composer update --no-scriptswykonał robotę. Dzięki!
endo64

137

Z jakiego systemu operacyjnego korzystasz? W systemie Windows: przejdź doCommand Prompt

ustaw ścieżkę do www/{ur project}

Dla mnie : www/laravel5

Następnie wpisz to polecenie: composer install

Automatycznie zainstaluje wszystkie zależności w vendor/


97

Uruchom composer installw folderze projektu głównego (lub php composer.phar install).


76

Okazuje się, że nie włączyłem openssl w moim php.ini, więc kiedy stworzyłem nowy projekt z kompozytorem, został on zainstalowany ze źródła. Zmieniłem to i pobiegłem

composer update

teraz został utworzony folder dostawcy.


57

Czy utworzyć nowy projekt lub nie można sklonować istniejący projekt?

Jeżeli sklonowany istniejący projekt jest bardzo ważne, aby uruchomić

composer install

W ten sposób zostaną zainstalowane wszystkie brakujące zależności.

Ale jeśli utworzysz nowy projekt, powinieneś uruchomić to polecenie, aby utworzyć nowy projekt za pomocą kompozytora

composer create-project laravel/laravel name-of-your-project

23

Napotkałem ten sam problem. Stało się tak, ponieważ kompozytor nie mógł zainstalować zależności określonych w pliku composer.json. spróbuj uruchomić

composer install 

Jeśli to nie rozwiąże problemu, upewnij się, że zainstalowane są następujące moduły php. Php-mbstring php-dom

Aby zainstalować to rozszerzenie, uruchom następujące polecenie w terminalu

sudo apt-get install php-mbstring php-dom

po zakończeniu instalacji

spróbuj uruchomić polecenie w folderze głównym projektu

composer install 

4
Zainstalowałem php-xml, aby ten działał, a nie php-dom (który nie istnieje w 16.04).
Evan Carroll,

1
Świetny!!! Zadziałało!! Instalacja php xml zamiast php-DOM jest akcja domyślna dla apt-get w ubuntu 16,04
user2928048

1
działało po zainstalowaniu mbstring i php-dom. Dziękuję Ci!
splunk

21

Po prostu uruchom to w katalogu, w którym zainstalowałeś swój projekt

composer install

1
Zrobiłem to i to działało, ale dlaczego? Chciałbym zrozumieć powód.
Simon Suh

1
@SimonSuh z jakiegoś powodu (awaria sieci, nowy projekt został utworzony bez wykonywania wszystkich poleceń, błąd podczas instalacji ręcznej, instalacja niestandardowa kompilacja ...) Zależności kompozytora, w których nie są zainstalowane lub są nieaktualne. to polecenie zainstaluje i zaktualizuje wszystkie zależności twojego projektu, co naprawi problem. mam nadzieję, że to wystarczy
Williem

20

Musisz ponownie wygenerować autoload.phpplik. możesz dump-autoloadto zrobić bez konieczności instalowania lub aktualizacji.

posługiwać się

composer dump-autoload

wygenerować autoload.phpplik ponownie w /vendorkatalogu.


Działa to dla mnie, ale występuje ten błąd Błąd krytyczny: nie znaleziono klasy „Illuminate \ Foundation \ Application”.
Adnan haider

19

Poniższy krok rozwiązał mój problem. Możesz spróbować

composer update --no-scripts 
composer update

1
Rozwiązałem też mój problem! Dzięki
Crysfel,

1
Dziękuję bardzo!
GeekHades,

16

Po sprawdzeniu phpwersji i wielu badaniach problem był na Composerboku, więc po prostu uruchom następujące polecenie

composer install --ignore-platform-reqs


6

Kiedy nowy projekt utworzył laravel wymaga załadowania dostawców do automatycznego ładowania bibliotek, używamy aktualizacji kompozytora, aby

composer update

Kompozytor to menedżer zależności, który umożliwia przekazanie odpowiedzialności za zarządzanie swoimi zależnościami podmiotom zewnętrznym.


5

Po prostu uruchom następujące polecenia,

composer update

Lub

composer install

5

przejdź do folderu projektu za pomocą cmd. uruchom następujące polecenie

composer update

zainstaluje brakujący folder dostawcy i pliki w twoim projekcie.

ale w niektórych przypadkach powoduje błąd typu „Twoja konfiguracja nie pozwala na połączenie z .....” w cmd.

w tym celu przejdź do pliku composer.json ,

zmień "secure-http": truena"secure-http": false

ale w niektórych przypadkach (jak w moim przypadku) możesz nie znaleźć takiej linii w swoim pliku. w tym celu wykonaj następujące czynności:

change "config": {
        "preferred-install": "dist"
}

do

"config": {
    "preferred-install": "dist",
    "secure-http": false
}

i ponownie uruchom composer updatepolecenie.

mam nadzieję, że to rozwiąże problem.


5

To rozwiązanie działało dla mnie. Powodem jest brak folderu dostawcy w aplikacji.

Wykonaj następujące kroki:

  1. jeśli twój projekt ma composer.jsonplik, usuń go

  2. następnie uruchomić

    composer require phpspec/phpspec

To polecenie powoduje dodanie folderu dostawcy do projektu


4

Wystarczy skonfigurować nowy projekt, używając composerzamiast laraveltego:

composer create-project --prefer-dist laravel/laravel myProje

3

Też miałem ten błąd. Ale żadne z powyższych nie rozwiązało problemu. Więc odinstalowałem i ponownie zainstalowałem kompozytora. Potem zrobiłem composer update. i problem został rozwiązany.


pocomposer install
Hos Mercury


2

Przed wykonaniem poniższych instrukcji należy upewnić się, że kompozytor jest zainstalowany globalnie na komputerze; Otwórz terminal Mac i uruchom następujące polecenie:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

po zainstalowaniu kompozytora globalnie uruchom następujące polecenie po przejściu do katalogu projektu:

composer install

po zakończeniu zaktualizuj i zainstaluj wszystkie wymagane pakiety.


2

Mamy błąd, ponieważ mamy brakuje dostawcy folderu w naszym projekcie, katalog zawiera nasze sprzedawca zależności kompozytora.

Potrzebujesz /vendorfolderu, ponieważ wszystkie pakiety są dostępne i zawierają wszystkie klasy używane przez Laravela. Problem można rozwiązać po wykonaniu zaledwie dwóch kroków:

composer update --no-scripts 
composer update
  • --no-scripts : Pomija wykonywanie skryptów zdefiniowanych wcomposer.json
  • aktualizacja kompozytora : sprawdzi, czy są nowsze wersje bibliotek wymaganych w projekcie. Jeśli zostanie znaleziona nowsza wersja i jest ona zgodna z ograniczeniem wersji określonym w composer.jsonpliku, zastąpi ona zainstalowaną poprzednią wersję. composer.lockPlik będzie aktualizowany w celu uwzględnienia tych zmian.

Te dwa polecenia odtworzymy folder dostawcy w naszym projekcie, a następnie nasz projekt będzie działał sprawnie.


1

Dodałem composer.lockplik do .gitignore, po zniknięciu błędu pliku w repozytorium :)


1

Zdaję sobie sprawę, że twój plik composer.json będzie zawierał coś w rodzaju skryptu

"scripts": {
    "post-root-package-install": [
        "php -r \"copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ],
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "pre-update-cmd": [
        "php artisan clear-compiled"
    ],
    "post-update-cmd": [
        "php artisan optimize"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},

co dla mnie działa:

"scripts": {
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},

usunięcie post install cmdpomogło uruchomić instalację kompozytora bez żadnego problemu.

Mam nadzieję że to pomoże

Twoje zdrowie!!


1

Usuń folder dostawcy i uruchom polecenie instalacji kompozytora. Działa w 100%


1

Brakuje folderu dostawcy, prawdopodobnie jego nowego sklonowanego repozytorium lub nowego projektu

folder dostawcy jest zapełniany przez plik binarny kompozytora, który odczytuje plik composer.json lub wymagania systemowe i instaluje się spakowany w folderze dostawcy i tworzy skrypt automatycznego ładowania, który wszystko sklasyfikował

composer update


0

W moim przypadku musiałem włączyć inne rozszerzenie, a mianowicie php_mbstring.dllw php.inipliku, zanim będzie mogło działać. Jest wymieniony pod extension=php_mbstring.dll. Znajdź go w php.inipliku i usuń przed nim średnik ( ;) i zapisz plik.

Po tym uruchom install composerponownie w katalogu głównym aplikacji Laravel i powinno działać.


0

Jeśli jesteś użytkownikiem systemu Windows, możesz odinstalować Composer. Następnie zainstaluj Composer. Następnie instalujesz Laravel. Może to zadziała.


0

mój problem został rozwiązany przez

composer update
composer install
php artisan key:generate

jeśli masz inny problem, możesz wyczyścić pamięć podręczną i skonfigurować Wyczyść pamięć podręczną trasy:

php artisan route:cache

Wyczyść pamięć podręczną:

php artisan view:clear

Wyczyść pamięć podręczną konfiguracji:

php artisan config:cache

0

Mam to, kiedy to zrobiłem composer updatezamiast composer install.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.