node.js — Бауэр — Героку

Я пытаюсь развернуть приложение 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

—————————————

Некоторые из моих файлов, просто для ясности:

composer.json

{
"name": "antony/athens-night-backend",
"description": "Backend for Athen's Night Startup",
"license": "MIT",
"authors": [
{
"name": "Antony Kalogeropoulos",
"email": "anthonykalogeropoulos@gmail.com"}
],
"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"]
}
}
}

PROCFILE

web: vendor/bin/heroku-php-apache2 public/

bower.json

{
"name": "athens-night-backend",
"homepage": "http://athens-night.gr/",
"authors": [
"Antony Kalogeropoulos <anthonykalogeropoulos@gmail.com>"],
"description": "athens nightlife events",
"main": "",
"license": "MIT",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"],
"dependencies": {
"gentelella": "^1.3.0"}
}

.bowerrc

{
"directory": "public/assets/"}

.buildpacks

https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-php

.package.json

{
"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.

1

Решение

Вы можете попробовать добавить 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 будет работать, наконец, установка компонентов беседки.

0

Другие решения

Убедитесь, что вы используете nodejs buildpack. В героку CLI:
heroku buildpacks:add --index 1 heroku/nodejs

Вы можете проверить ваш использованный buildpack с heroku buildpacks

0