如何在 Heroku 上使用多个命令 运行 Procfile?

How to run Procfile with multiple commands on Heroku?

我正在尝试将静态网站部署到 Heroku,但我正在努力如何正确设置 Procfile

我在服务器上有 运行 的下一个命令:


我尝试过的:

好的,所以我花了一些时间在这上面并得出了答案。默认情况下,heroku 从 package.json 文件安装所有包,因此不再需要 npm install。然后剩下的 - gulp buildhttp-server

对于这种情况,我将 "postinstall" : "gulp build" 添加到我的 package.json 中,它给我留下了 web: http-server

把事情简单化其实已经解决了问题。不确定这些信息对您有多大用处,但值得分享。

您可能也在寻找 && 或 concurrently 之类的库。

无论如何,根据文档,使用 Procfile 只不过是 npm 启动脚本的入口点。


按照 (npm-scripts) 所述使用 npm 脚本生命周期。

直接来自文档 (heroku-build-process)

"scripts": {
    "start": "node index.js",
    "test": "mocha",
    "postinstall": "bower install && grunt build"
}

Heroku 采用了“万物皆有应用”的口号,但对于构​​建包而言。无论您要构建什么,都有适合它的构建包。

您可以在 Procfile 中使用 sh -c 命令 运行 多个命令:

worker: sh -c 'firstCommand && secondCommand && etc...'

注意:Procfile 应该在项目根级别

例如:

worker: sh -c 'cd backend && yarn install && yarn build && yarn start-worker'

或者在您的情况下(如果您的 Procfile 与 package.json 处于同一级别):

web: sh -c 'npm install && gulp build && npm run http-server'