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

zer*_*dge 4 python django heroku npm

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

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

我的问题是如何将两者结合起来?执行npm init并在我的根文件夹中npm install mjml创建了一个node_modules目录,以及文件:package.jsonpackage-lock.json. 我想这并不是我真正想要的?

不知道如何从这里继续,感谢任何指示!

Chr*_*ris 5

我没有使用过该库,但您可能需要使用多个构建包

  1. 将您的主构建包设置为heroku/python

    heroku buildpacks:set heroku/python
    
    Run Code Online (Sandbox Code Playgroud)
  2. 添加heroku/nodejs构建包:

    heroku buildpacks:add --index 1 heroku/nodejs
    
    Run Code Online (Sandbox Code Playgroud)
  3. 确认 Node.js 构建包将首先运行,Python 构建包将其次运行

    heroku buildpacks
    
    Run Code Online (Sandbox Code Playgroud)

确保你有

  • 为 Python 依赖项提交的文件requirements.txt(如果您使用的是pip)或两者PipfilePipfile.lock如果您使用的是 Pipenv),以及
  • 一个package.json文件,并为依赖项提交package-lock.json(如果您使用的是npm)或yarn.lock(如果您使用的是 Yarn)mjml

您在问题中提到的package.json和应该足以满足 Node.js 依赖项的要求,但必须提交它们,并且您需要在推送之前设置构建包。package-lock.json