在Heroku上的Django / Python应用程序中使用Node模块

时间:2019-03-11 19:15:41

标签: python django heroku npm

我有一个相当经典的Python / Django应用程序部署到Heroku。

我想使用一个pip软件包django-mjml,它本身依赖于名为mjml的Node.js模块。

我的问题是如何将两者结合?进行npm initnpm install mjml会在我的根文件夹中创建一个node_modules目录,同时还会创建文件package.jsonpackage-lock.json。我想那不是我想要的吗?

不确定如何从这里继续进行,不胜感激!

1 个答案:

答案 0 :(得分:1)

我还没有使用过该库,但是您可能需要use multiple buildpacks

  1. 将您的主buildpack设置为heroku/python

    heroku buildpacks:set heroku/python
    
  2. 添加heroku/nodejs构建包:

    heroku buildpacks:add --index 1 heroku/nodejs
    
  3. 确认首先运行Node.js构建包,然后运行Python构建包

    heroku buildpacks
    

确保您拥有

  • 为Python依赖关系提交的requirements.txt文件(如果使用的是pip)或PipfilePipfile.lock(如果使用的是Pipenv) strong>和
  • 一个package.json文件和package-lock.json(如果您使用的是npm)或yarn.lock(如果您使用的是Yarn)已提交给{{1} }。

您在问题中提到的mjmlpackage.json应该足以满足Node.js依赖关系,但是必须将它们提交,并且需要在推送之前设置构建包。