Heroku:运行npm install和gulp build for Django app

roc*_*ter 5 django heroku npm gulp

我有一个Django应用程序,我设法与Heroku部署.我的Procfile文件只包含:

web: gunicorn omegapp3.wsgi --log-file -
Run Code Online (Sandbox Code Playgroud)

所以当我运行heroku local它时.

但是当我部署时heroku push master,控制台检测到一个节点应用程序,因为该应用程序有一个package.json,然后构建失败.

我想做的是以下内容:

  • 跑去npm install安装gulp
  • 运行gulp build.

你知道我怎么做吗?

J-b*_*bob 6

根据官方文档,您应该在设置中添加多个构建包,而不是单个多个构建包.

例如,如果您想部署使用Nodejs包(即grunt,gulp等)的应用程序在您的应用程序上进行一些设置,您可以从命令行运行:

heroku buildpacks:add --index 1 heroku/nodejs
Run Code Online (Sandbox Code Playgroud)

add命令将Nodejs buildpack添加为额外的 buildpack,而不是替换当前的buildpack.请注意--index 1.这指定Nodejs buildpack是buildpacks顺序中的第一个.这很重要,因为最终的buildpack是用于实际进程类型的buildpack.您可以heroku buildpacks从命令行调用以验证buildpack设置.我运行一个Python应用程序,所以我heroku buildpacks看起来像这样:

=== your_app_name_here Buildpack URLs
1. heroku/nodejs
2. https://github.com/heroku/heroku-buildpack-python
Run Code Online (Sandbox Code Playgroud)

然后,正如rocketer所述,您可以将其放在您的package.json文件中以便在部署中运行:

"scripts": {
  "postinstall": "./node_modules/.bin/gulp build"
}
Run Code Online (Sandbox Code Playgroud)


roc*_*ter 1

通过使用 解决了$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-multi.git
它允许使用nodeand python(您必须在.buildpacks文件中指定)。为了运行gulp build,我将以下内容添加到我的package.json

"scripts": {
  "postinstall": "./node_modules/.bin/gulp build"
}
Run Code Online (Sandbox Code Playgroud)