Laravel 5 Не удалось открыть загрузочный файл /../ vendor / autoload.php


366

Я недавно установил Laravel 5 через композитор. Я попытался создать новый контроллер с помощью artisan, и я получаю следующую ошибку:

самозагрузки /../ поставщик / autoload.php. Не удалось открыть поток: нет такого файла или каталога. Папка "vendor" не существует.

Я что-то пропустил?

Ответы:


307

Запустите composer с --no-scripts

composer update --no-scripts  

Это должно решить проблему. Я пробовал это на Mac и Linux.


14
Иногда, когда вы запускаете: «composer install», вы также получаете эту ошибку, поэтому лучше всего сначала запустить: «composer install --no-scripts», а затем запустить composer install в обычном режиме.
Herohat

3
Документация Composer: --no-scripts: Пропускает выполнение скриптов, определенных в composer.json. ( Getcomposer.org/doc/03-cli.md#update )
Айне

Намного лучше использовать composer install, потому что он будет запускать все необходимое для установки всех зависимостей, включая скрипты.
Леандро Жак,

ошибка Composer не смог найти файл composer.json в C: \ composer. Для инициализации проекта создайте файл composer.json, как описано в разделе «Начало работы»
getcomposer.org

composer installне работал на меня, composer update --no-scriptsсделал работу. Спасибо!
endo64

137

Какую ОС вы используете? Для Windows: перейдите наCommand Prompt

установить путь к www/{ur project}

Для меня : www/laravel5

Затем введите эту команду: composer install

Это автоматически установит всю зависимость в vendor/



76

Оказывается, я не включил openssl в своем php.ini, поэтому, когда я создавал свой новый проект с помощью composer, он был установлен из исходного кода. Я изменил это и побежал

composer update

Теперь папка продавца была создана.


57

Вы создали новый проект или клонировали существующий проект?

Если вы клонировали существующий проект, очень важно запустить

composer install

Таким образом, все отсутствующие зависимости будут установлены.

Но если вы создаете новый проект, вы должны запустить эту команду, чтобы создать новый проект с использованием composer

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

23

Я столкнулся с той же проблемой. Это произошло из-за того, что composer не удалось установить зависимости, указанные в файле composer.json. попробуйте запустить

composer install 

Если это не решает проблему, убедитесь, что установлены следующие модули php php-mbstring php-dom

Чтобы установить эти расширения, запустите следующее в терминале

sudo apt-get install php-mbstring php-dom

после завершения установки

попробуйте запустить команду в корневой папке вашего проекта

composer install 

4
Я установил php-xml, чтобы это работало, а не php-dom (которого нет в 16.04).
Эван Кэрролл

1
Большой!!! Это сработало!! Установка php-xml вместо php-dom является действием по умолчанию для apt-get в Ubuntu 16.04
user2928048

1
это сработало после установки mbstring и php-dom. Спасибо!
spunk

21

Просто запустите это в каталоге, где вы установили свой проект

composer install

1
Я сделал это, и это сработало, но почему? Я хотел бы понять причину, пожалуйста.
Саймон Су,

1
@SimonSuh по какой-то причине (сбой сети, новый проект был создан без прохождения всех команд, ошибка во время ручной установки, установка с пользовательской сборкой ...) зависимости компоновщика, где они не установлены или не обновлены. эта команда установит и обновит все зависимости вашего проекта, и это решит проблему. надеюсь, что это достаточно
Виллием

20

Вам необходимо восстановить autoload.phpфайл. ты можешь использоватьdump-autoload это, не проходя установку или обновление.

использование

composer dump-autoload

сгенерировать autoload.phpфайл снова в /vendorкаталоге.


Это работает для меня, но с этой ошибкой Неустранимая ошибка: класс «Осветить \ Основание \ Приложение» не найден.
Аднан Хайдер

19

Следующий шаг решил мою проблему. Вы можете попробовать

composer update --no-scripts 
composer update

1
Решил и мою проблему тоже! Спасибо
Crysfel

1
Спасибо большое!
GeekHades

16

После проверки phpверсии и большого количества исследований проблема была на Composerстороне, поэтому просто выполните следующую команду

composer install --ignore-platform-reqs


6

Когда новый проект создал laravel, требуется загрузить поставщиков для автозагрузки библиотек. Мы используем обновление composer для

composer update

Composer - это менеджер зависимостей, позволяющий делегировать ответственность за управление вашими зависимостями третьей стороне.


5

Просто выполните следующие команды,

composer update

Или

composer install

5

перейдите в папку вашего проекта через cmd. выполните следующую команду

composer update

он установит отсутствующую папку и файлы вендора в ваш проект.

но в некоторых случаях выдает ошибку типа «Ваша конфигурация не разрешает подключение к .....» в cmd.

для этого перейдите в ваш файл composer.json ,

изменить "secure-http": trueна"secure-http": false

но в некоторых случаях (как было в моем случае) вы не можете найти такую ​​строку в вашем файле. для этого выполните следующие действия:

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

в

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

и снова запустите composer updateкоманду.

надеюсь, что это решит проблему.


5

Это решение сработало для меня. Причина не в том, чтобы иметь папку продавца в вашем приложении была .

Следуй этим шагам:

  1. если в вашем проекте есть composer.jsonфайл, удалите его

  2. тогда беги

    composer require phpspec/phpspec

Эта команда добавляет папку вендора в ваш проект


4

Просто настройте новый проект, используя composerвместо laravelэтого:

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

3

У меня тоже была эта ошибка. Но ничто из вышеперечисленного не решило проблему. Поэтому я удалил и снова установил композитор. Тогда я сделал composer update. и проблема была исправлена.


послеcomposer install
Hos Mercury


2

Перед выполнением следующих инструкций необходимо убедиться, что на вашей машине глобально установлен композитор; Откройте свой терминал Mac и выполните следующую команду:

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

после того, как composer установлен глобально, запустите следующую команду после того, как вы окажетесь в каталоге проекта:

composer install

После завершения обновите и установите все необходимые пакеты.


2

Мы получили сообщение об ошибке , потому что мы не хватаем поставщик папки в нашем проекте, Каталог поставщиков содержит наш зависимости Composer.

Нужна /vendorпапка, потому что там есть все пакеты, включая все классы, которые использует Laravel. Проблему можно решить, выполнив всего два шага:

composer update --no-scripts 
composer update
  • --no-scripts : пропускает выполнение скриптов, определенных вcomposer.json
  • Обновление композитора : это проверит наличие более новых версий библиотек, необходимых для вашего проекта. Если найдена более новая версия и она совместима с ограничением версии, определенным в composer.jsonфайле, она заменит предыдущую установленную версию. composer.lockФайл будет обновлен с учетом этих изменений.

Этими двумя командами мы воссоздадим папку vendor в нашем проекте и после этого наш проект будет работать без сбоев.


1

Я добавил composer.lockфайл в .gitignore, после принятия этого файла ошибка хранилища исчезла :)


1

Я понимаю, что ваш файл composer.json будет иметь такой сценарий, как

"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"
    ]
},

что работает для меня:

"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"
    ]
},

Удаление post install cmdпомогло запустить композер без проблем.

Надеюсь это поможет

Ура !!


1

Удалите папку vendor и запустите команду установки composer. Работает на 100%


1

Вам не хватает папки продавца, возможно, ее новый клонированный репозиторий или новый проект

папка vendor заполняется двоичным файлом composer, который считывает файл composer.json или системные требования, устанавливает пакет в папке vendor и создает сценарий автозагрузки, который имеет все классы

composer update


0

В моем случае мне пришлось включить другое расширение, а именно php_mbstring.dllв php.iniфайл, прежде чем оно могло работать. Это перечислено под extension=php_mbstring.dll. Найдите его в php.iniфайле и удалите точку с запятой ( ;) перед ним и сохраните файл.

После этого запустите install composerснова в корневом каталоге вашего приложения Laravel и он должен работать.


0

Если вы пользователь Windows, вы можете удалить Composer. Затем установите Composer. После этого вы устанавливаете Laravel. Может быть, это будет работать.


0

моя проблема решена

composer update
composer install
php artisan key:generate

если у вас возникли другие проблемы, вы можете очистить кеш и настроить очистить кеш:

php artisan route:cache

Очистить кеш просмотра:

php artisan view:clear

Очистить кэш конфигурации:

php artisan config:cache

0

Я получил это, когда я сделал composer updateвместо composer install.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.