Я использую команду composer require otra/otra:dev-develop --no-update --no-cache && composer update --no-autoloader
для установки моей собственной платформы.
Я поместил этот раздел в мой composer.json
из моей платформы:
"scripts": {
"pre-install-cmd": "@composer config bin-dir bin/"
}
Но Composer делает не запускай его. Это нормально, Composer считает это зависимостью, а не пакетом root, поэтому он не позволяет моему сценарию работать?
Если это так, как я могу иметь такое же поведение?
Я хочу:
- иметь мой двоичный файл в папке
bin
, а не vendor/bin
без необходимости запрашивать у пользователя символическую ссылку вручную (или другое решение) - скопировать папку
web
из моей структуры в root проекта.
Редактировать: с помощью create-project
команды Если я наберу composer create-project otra/otra:dev-develop crashtest --remove-vcs
, Я получаю это composer.json
:
{
"name": "otra/otra",
"type": "library",
"description": "The OTRA PHP framework",
"keywords": ["framework"],
"homepage": "https://github.com/lperamo/otra",
"license": "X11",
"authors": [
{
"name": "Lionel Péramo",
"email": "contact@lionel-peramo.com",
"homepage": "https://wexample.com"
}
],
"bin" : ["otra.php"],
"config": {
"bin-dir" : "bin/",
"sort-packages": true
},
"require": {
"ext-mbstring": "*",
"php": ">=7.4.0",
"symfony/yaml": "^4.0"
},
"require-dev": {
"ext-pdo": "*",
"ext-pdo_mysql": "*"
},
"scripts": {
"pre-install-cmd": "@composer config bin-dir bin/"
}
}
, которое в точности совпадает с моим фреймворком, поэтому я не могу обновить его через Composer. Я мог бы с git, если я не использую --remove-vcs
, но это не цель.
Вывод команды composer
:
Установка otra / otra (dev -velop ab37237565155dab11812a7b2982d30ee240f051)
- Установка otra / otra (dev -velop ab37237): клонирование ab37237565 из кеша
Создан проект в крэш-тесте
1056 * хранилища с информацией о пакете
Установка зависимостей (включая require-dev) из файла блокировки