Я пытаюсь развернуть приложение PHP на heroku, а также есть Bower.
Проблема в том, что, несмотря на то, что heroku обнаруживает оба пакета node.js и php, он не запускается bower install
,
Я нашел:
этот: https://github.com/dzuelke/heroku-multipack-nodejs-php-example/blob/master/.buildpacks
и это: https://github.com/heroku/heroku-buildpack-multi
но почему-то я не могу заставить его работать.
Может кто-нибудь объяснить полный процесс?
Выход из heroku buildpacks
:
=== athens-night Buildpack URLs
1. https://github.com/heroku/heroku-buildpack-nodejs
2. heroku/php
Некоторые из моих файлов, просто для ясности:
{
"name": "antony/athens-night-backend",
"description": "Backend for Athen's Night Startup",
"license": "MIT",
"authors": [
{
"name": "Antony Kalogeropoulos",
"email": "[email protected]"}
],
"require": {
"php": "^7.0.0",
"twig/twig": "~1.0",
"swiftmailer/swiftmailer": "^5.4",
"vlucas/phpdotenv": "^2.3",
"ccampbell/chromephp": "^4.1"},
"require-dev": {
"heroku/heroku-buildpack-php": "*"},
"autoload": {
"psr-4": {
"Night\\": "app/"},
"scripts": {
"compile": [
"bower install"]
}
}
}
web: vendor/bin/heroku-php-apache2 public/
{
"name": "athens-night-backend",
"homepage": "http://athens-night.gr/",
"authors": [
"Antony Kalogeropoulos <[email protected]>"],
"description": "athens nightlife events",
"main": "",
"license": "MIT",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"],
"dependencies": {
"gentelella": "^1.3.0"}
}
{
"directory": "public/assets/"}
https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-php
{
"name": "multitest",
"version": "0.0.0",
"description": "",
"author": "",
"license": "ISC",
"dependencies": {
"bower": "~1.3.3"},
"engines": {
"node": "4.0.0"}
}
ОБНОВИТЬ:
Мне удалось bower install
изменяя package.json
к этому:
{
"dependencies": {
"bower": "^1.5.2"},
"engines": {
"node": "4.0.0"},
"scripts": {
"postinstall": "bower cache clean && bower install"}
}
Однако я держу этот вопрос открытым, пока не получу хорошо объясненный ответ о полном процессе использования bower с php на heroku.
Вы можете попробовать добавить post-install-cmd
а также post-update-cmd
в composer.json
скрипты.
"scripts": {
"post-install-cmd": [
"bower install"],
"post-update-cmd": [
"bower install"]
}
учитывая, что Heroku обнаруживает nodejs.
Здесь Heroku сначала обнаружит nodejs и проходит через package.json
Буду устанавливать bower
,
Затем, composer install
будет работать, наконец, установка компонентов беседки.
Убедитесь, что вы используете nodejs buildpack. В героку CLI:
heroku buildpacks:add --index 1 heroku/nodejs
Вы можете проверить ваш использованный buildpack с heroku buildpacks