【问题标题】:Using a Node module in a Django / Python app on Heroku在 Heroku 上的 Django / Python 应用程序中使用 Node 模块
【发布时间】:2019-03-11 19:15:41
【问题描述】:
我有一个相当经典的 Python/Django 应用程序部署到 Heroku。
我想使用一个 pip 包,django-mjml,它本身依赖于一个名为 mjml 的 Node.js 模块。
我的问题是如何将两者结合起来?执行npm init 和npm install mjml 在我的根文件夹中创建了一个node_modules 目录,以及文件:package.json 和package-lock.json。我想这不是我真正想要的?
不知道如何从这里开始,感谢任何指示!
【问题讨论】:
标签:
python
django
heroku
npm
【解决方案1】:
我没用过那个库,但你可能需要use multiple buildpacks:
-
将您的主构建包设置为 heroku/python:
heroku buildpacks:set heroku/python
-
添加heroku/nodejs buildpack:
heroku buildpacks:add --index 1 heroku/nodejs
-
确认 Node.js buildpack 将首先运行,Python buildpack 将在第二个运行
heroku buildpacks
确保你有
- 一个
requirements.txt 文件(如果您使用pip)或Pipfile 和Pipfile.lock(如果您使用 Pipenv)为您的Python 依赖项提交,和
- 一个
package.json 文件和package-lock.json(如果您使用npm)或yarn.lock(如果您使用Yarn)为mjml 依赖项提交。
您在问题中提到的 package.json 和 package-lock.json 应该足以满足 Node.js 依赖项,但必须提交它们,并且您需要在推送之前设置构建包。