python node.js ruby_如何使用python(或ruby)和nodejs做heroku?

益明朗
2023-12-01

我和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,但这看起来很疯狂。在

 类似资料: