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

366

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

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

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

Скотт
источник

Ответы:

307

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

composer update --no-scripts  

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

Shubhamoy
источник
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/

MONTS_MIND_Hacker
источник
97

Запустите composer installв корневой папке проекта (или php composer.phar install).

дан-Klasson
источник
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 
naveddeshmukh
источник
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
Williem
источник
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команду.

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

saadk
источник
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
3

У меня была та же проблема с Laravel и Artisan, решение:

php artisan key:generate
Марсело Агимовель
источник
2

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

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

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

composer install

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

Krishneil
источник
2

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

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

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

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

Удхав Сарваия
источник
1

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

Alupotha
источник
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помогло запустить композер без проблем.

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

Ура !!

usrNotFound
источник
1

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

orxanzadeh
источник
1

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

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

composer update
AWS PS
источник
1

Удалить продавца тогдаcomposer install

Хасан Раза
источник
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.

Мик
источник