我和Heroku之间有一个障碍,我还没有找到最好的解决方法,但也许我遗漏了一些东西。在
在我解释更多之前,首先让我说我熟悉Heroku的:https://github.com/heroku/heroku-buildpack-multi.git
实际上,我有一个.buildpacks文件,它看起来像:
^{pr2}$
我的问题是,如何告诉heroku我的nodejs应用程序的基本目录不在根目录中?在
我如何告诉Heroku从我的应用程序的/dir1/dir2/ui开始应用nodejs构建包并将该目录用作基本目录?但是对于python,使用/dir1作为基本目录?在
总的想法是,我将运行某种pythonwsgi服务器(无论是Flask还是Django……甚至,比如说rubyonrails)。但是我将使用一套节点包来构建我的前端内容(scss文件、JS文件、HTML文件)。在
我不止一次使用某种Python starter/seed项目启动了一个项目,该项目将生成一个简单的框架服务器,其中包含路由和一个简单的角度前端。在
然后我将快速使用类似于yeoman的东西来生成一个更丰富、更成熟的前端,它使用node和gulp来实现各种便利的前端魔术。在
然后,我将把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的问题。在
我有两个构建环境,python和node/gulp。但是我想告诉heroku我的节点环境是从ui/目录开始的。在
但我还没想好怎么做。这能实现吗?在
目前看来,如果我有我的python管理.py脚本启动一个吞食构建,它将无法找到节点和npm。我有可能管理.py脚本实际上自己去获取并安装node/npm,但这看起来很疯狂。在