我正试图在heroku上部署一个PHP应用程序,同时也有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"
}
}然而,在收到一个关于在heroku上使用bower与php的完整过程的详细解释之前,我将一直保留这个问题。
发布于 2016-08-23 11:16:28
您可以尝试将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将运行,最后安装bower组件。
发布于 2018-07-31 15:51:54
确保使用nodejs buildpack。在heroku CLI:heroku buildpacks:add --index 1 heroku/nodejs
您可以使用heroku buildpacks检查已使用的构建包。
https://stackoverflow.com/questions/39099546
复制相似问题