我有一個Heroku的障礙,我還沒有想出最好的解決方法,但也許我錯過了一些東西。如何用python(或ruby)和nodejs做heroku?
在我解釋更多,讓我先說,我所熟悉的Heroku的:
https://github.com/heroku/heroku-buildpack-multi.git
事實上我有一個.buildpacks文件看起來像:
https://github.com/heroku/heroku-buildpack-nodejs.git
https://github.com/heroku/heroku-buildpack-python.git
的TL; DR我的問題是,我如何告訴heroku我的nodejs應用程序的基本目錄不在根目錄中?
如何告訴Heroku應用從我的應用的/ dir1/dir2/ui開始的nodejs buildpack並將該目錄用作基目錄?但對於Python使用/ dir1作爲基本目錄?
總的想法是,我將運行某種Python WSGI服務器(無論是Flask還是Django ......或者甚至是Ruby on Rails)。但是我將使用一套節點包來構建我的前端內容(scss文件,JS文件,HTML文件)。
不止一次我使用某種Python starter/seed項目開始一個項目,該項目將生成一個簡單的骨架服務器,包含路由和一個簡單的Angular前端。
然後,我會盡快使用像yeoman這樣的東西來生成一個更豐富和更成熟的前端,它使用節點和吞嚥來做各種方便的前端魔術。
然後,我將yeoman UI項目結構合併到我的python項目中,以使用來自Python和node/npm/gulp/bower/Angular的最佳實踐來獲得完整項目。
合併我一般就會有一個項目結構,看起來像(一些東西,不再贅述)後:
.buildpacks
Procfile
env/ # python virtual environment (not actually checked in to git)
heroku.sh
myproject_dir
models/
views/
ui/
# python templates (eg: *.jinja.html files). i'll predominantly
# be using angular and partials, but I don't totally want to
# give up all server-side templates. SPAs, in reality are not
# usually truly one single-page, but maybe 3 or 4 very rich
# pages
templates/
index.jinja.html # my main html file
# static/ is where the yeoman project really merges in to
# the python project
static/
assets/
images/
foo.jpg
styles/
app.css
partials/
app/
app.html
src/
app/
app.js
test/
test1.js
# gulpfile.js and package.json live in the ui directory (not
# in the static directory), because I actually do want gulp to
# do some processing on my jinja server-side template files
gulpfile.js
package.json
bower.json
node_modules/
bower_components/
manage.py # python top-level for managing script for various things
requirements.txt # python package dependencies
runtime.txt
而且我們現在已經在我的問題與Heroku的到來。
我有2個構建環境,python和node/gulp。但我想告訴heroku我的節點環境從ui /目錄開始。
但我還沒有想出如何做到這一點。這是可以實現的嗎?
我要指出,這個問題的Heroku非常有關:https://github.com/heroku/heroku-buildpack-nodejs/issues/230
目前,它看起來像如果我有我的Python腳本manage.py揭開序幕一飲而盡建立,將無法找到節點和故宮。這可能會導致我的manage.py腳本實際上自行獲取並安裝node/npm,但這看起來很瘋狂。
謝謝!很有幫助。我沒有想過Vagrant,只是沒有意識到他們有一個圖像,調試我的buildpack一直是一個真正的瑣事。現在我已經將heroku的python和nodejs構建包合併爲一個了,在Python之後運行nodejs。流浪者將會提供幫助。 Docker也很有趣。我從來沒有用過它,但聽說過它。事實上,Docker可能是Heroku未來的方式。儘管我從來沒有用過它,但我認爲我更喜歡在buildpack文件上使用Dockerfile。關於buildpack文件和它們運行的環境文件太多沒有文檔。 – lostdorje
祝你好運! – bwarren2