python项目中的javascript依赖

标签 javascript python dependency-management

我正在编写软件,允许人们将数学书籍作为网站发布。它主要基于 Python + Flask,但为了处理方程,我使用 MathJax。 MathJax 可以在客户端或服务器端使用(通过 MathJax-node )。在后一种情况下,我必须使用 npm 在我的主要 Python 脚本可以访问的某个地方安装 MathJax-node,然后从脚本中调用它。在前一种情况下,我必须提供 MathJax.js 作为 Assets ,可供客户端使用(目前我使用 Flask 的 send_from_directory 函数)。

我的问题是:在 Python 中处理此类异构依赖项的最佳实践是什么?我的目标是至少在类 unix 系统(Linux 或 MacOS)上使安装过程尽可能简单,前提是 nodenpm 已经可用。

我可以将我需要的所有 javascript 源放入我的发行版本身,但也许有更好的方法吗?

最佳答案

My question is: what is the best practice of dealing with such heterogenous dependencies in Python?

对于 Node 依赖项,我会在指定所需 Node 依赖项的目录中包含一个 package.json 文件。对于其他语言/包管理器,我也会使用指定依赖项的任何常规方法(例如,为 Ruby 依赖项添加一个 Gemfile)。

Python/Flask 的另一个常见示例是使用 Bower用于静态前端依赖项的包管理器。在这种情况下,依赖项在 bower.json 文件中指定,并且通常被拉入 Flask 的 static 目录中的 bower 文件夹中。

I can just put all the javascript sources I need into my distribution itself, but maybe there's a better way to do it?

一旦您获得了指定依赖项的 package.json,您就可以获取并安装运行 npm install 所需的所有 Node 依赖项,在我看来,是比在项目中包含 javascript 源代码更优雅的解决方案。

现在您已经有了多个包管理器(例如,除了 npm 用于 Node 依赖项之外,您可能正在使用 pip 作为 Python 依赖项),您可能想制作一个 Makefile 或一些部署/构建脚本来使用它们全部获取/安装(例如,如果我使用 Travis CI,我会更新我的 .travis.yml 以调用 npm install 除了 pip install -r)。

关于python项目中的javascript依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44185843/

相关文章:

python - 如何在 python 中模拟.修补普通字典?

python - 最后在 django 中看到一个用户

javascript - 如何管理客户端 JavaScript 依赖项?

node.js - 在 docker 中安装 npm 依赖项并从 volume 进行测试

javascript - 在路由更改时更新组件状态? ( react 路由器)

javascript - 在只有类、没有 ID 的 div 中获取特定的 <p>

python - 如何修复 'TypeError: __init__() got an unexpected keyword argument ' 发件人”

javascript - 可靠的 Javascript 图像预览

javascript - ExtJs动态存储失败的调用句柄

java - Maven 在构建我们自己的 custom.jar 时发布和使用第三方运行时 jar