Как использовать локальные пакеты composer в Laravel

#laravel #composer-php #install.packages

#laravel #composer-php #install.packages

Вопрос:

Я пытаюсь использовать локальный пакет composer в Laravel (8.0) — на основе того, как локально разработать простой пакет Laravel

Я использую simonschaufi / laravel-dkim

  1. Локальная копия пакета находится в каталоге: /packages/simonschaufi/laravel-dkim
  2. Мой файл composer:
 "repositories": {
     "laravel-dkim": {
         "type": "path",
         "url": "/packages/simonschaufi/laravel-dkim",
         "options": {
             "symlink": true
         }
     }
 },
 "require": {      
     "simonschaufi/laravel-dkim": "@dev"
 },
 "config": {
     "preferred-install": "source",
     "sort-packages": true,
     "optimize-autoloader": true
 },
 "minimum-stability": "dev",
 "prefer-stable": true
  

К сожалению, после composer update получения исходного пакета (вместо локального)

Вы знаете, что не так????

Комментарии:

1. Можете ли вы показать верхнюю часть своего composer.json ? Вы вставили "laravel-dkin: {...}" массив "repositories" , потому что я не вижу закрытия ] .

Ответ №1:

Попробуйте изменить ключ репозиториев на:

   "repositories": [
        {
            "type": "path",
            "url": "/packages/simonschaufi/laravel-dkim"
        }
    ],
  

Другой потенциальной проблемой может быть требование:

 "require": {      
        "simonschaufi/laravel-dkim": "dev-master"
    },
  

Также требование кажется немного маленьким? У вас есть дубликат ключа? Также дважды проверьте локальный путь к пакету.

Ответ №2:

На основе справки от Саймона Шауфельбергера:

проблема заключалась в том, что я использовал старую версию Composer (1.8.4). После обновления composer (до 1.10.13) локальный пакет был установлен правильно 🙂

Правильный код в файле composer:

 "repositories": [
        {
            "type": "path",
            "url": "./packages/*"
        }
    ],
  

Файлы должны быть в каталоге /packages/laravel-dkim