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

时间:2015-12-06 17:08:26

标签: django heroku npm gulp

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

web: gunicorn omegapp3.wsgi --log-file -

因此,当我运行heroku local时,它可以正常工作。

但是当我使用heroku push master进行部署时,控制台会检测到节点应用,因为该应用有package.json,然后构建失败。

我想做的是以下内容:

  • 运行npm install以安装gulp等。
  • run gulp build。

你知道我怎么做吗?

2 个答案:

答案 0 :(得分:6)

根据official documentation,您应该将多个构建包添加到您的设置中,而不是单个 multi 构建包。

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

heroku buildpacks:add --index 1 heroku/nodejs

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

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

"scripts": {
  "postinstall": "./node_modules/.bin/gulp build"
}

答案 1 :(得分:1)

使用node解决 它允许使用python.buildpacks(您必须在gulp build文件中指定)。 在ordre中运行package.json,我将以下内容添加到"scripts": { "postinstall": "./node_modules/.bin/gulp build" }

<?php 
include ("./inc/connect.inc.php"); 
session_start();
if (isset($_SESSION['user_login'])) {
}
else 
{
header("location: home.php");

}
?>