首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bower - PHP - Heroku

Bower - PHP - Heroku
EN

Stack Overflow用户
提问于 2016-08-23 11:09:47
回答 2查看 280关注 0票数 1

我正试图在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输出

代码语言:javascript
复制
=== athens-night Buildpack URLs
1. https://github.com/heroku/heroku-buildpack-nodejs
2. heroku/php

我的一些文件,只是为了清晰起见:

composer.json

代码语言:javascript
复制
{
  "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

代码语言:javascript
复制
web: vendor/bin/heroku-php-apache2 public/

bower.json

代码语言:javascript
复制
{
  "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

代码语言:javascript
复制
{
  "directory": "public/assets/"
}

.buildpacks

代码语言:javascript
复制
https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-php

.package.json

代码语言:javascript
复制
{
  "name": "multitest",
  "version": "0.0.0",
  "description": "",
  "author": "",
  "license": "ISC",
  "dependencies": {
    "bower": "~1.3.3"
  },
  "engines": {
    "node": "4.0.0"
  }
}

更新:

我设法将bower install更改为package.json

代码语言:javascript
复制
{
  "dependencies": {
    "bower": "^1.5.2"
  },
  "engines": {
    "node": "4.0.0"
  },
  "scripts": {
    "postinstall": "bower cache clean && bower install"
  }
}

然而,在收到一个关于在heroku上使用bower与php的完整过程的详细解释之前,我将一直保留这个问题。

EN

回答 2

Stack Overflow用户

发布于 2016-08-23 11:16:28

您可以尝试将post-install-cmdpost-update-cmd添加到composer.json脚本中。

代码语言:javascript
复制
"scripts": {
    "post-install-cmd": [
      "bower install"
    ],
    "post-update-cmd": [
      "bower install"
    ]
  }

既然Heroku检测到nodejs。

在这里,Heroku将首先检测nodejs,并通过package.json安装bower。然后,composer install将运行,最后安装bower组件。

票数 0
EN

Stack Overflow用户

发布于 2018-07-31 15:51:54

确保使用nodejs buildpack。在heroku CLI:heroku buildpacks:add --index 1 heroku/nodejs

您可以使用heroku buildpacks检查已使用的构建包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39099546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档