2015-12-06 91 views
4

我有一個Django應用,我設法用Heroku進行部署。我Procfile文件只包含:Heroku:爲Django應用運行npm安裝和gulp構建

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

所以,當我運行heroku local它的工作原理。

但是,當我與heroku push master部署控制檯檢測節點應用,因爲應用程序有一個package.json,然後構建失敗。

我想這樣做的是以下幾點:

  • 運行npm install安裝gulp
  • 運行一飲而盡構建。

你知道我該怎麼做嗎?

回答

1

使用$ heroku buildpacks:set https://github.com/heroku/heroku-buildpack-multi.git解決。
它允許使用nodepython(您必須在.buildpacks文件中指定)。 在公共秩序運行gulp build,我增加了以下我package.json

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

按照official documentation,你應該添加多個 buildpacks您的設置,而不是單一的 buildpack。

例如,如果你想部署一個使用的NodeJS包(即咕嚕,一飲而盡,等)做你的應用程序進行一些設置一個應用程序,你會從你的命令行運行以下命令:

heroku buildpacks:add --index 1 heroku/nodejs 

add命令將Nodejs buildpack作爲附加 buildpack添加,而不是替換當前的buildpack。請注意0​​。這指定Nodejs buildpack是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" 
} 
+0

這是完美的。感謝分享! – awwester