ipm*_*mcc 5 python setuptools node.js reactjs webpack
我有一个基于Python的Web应用程序,正在尝试将其打包为setuptools软件包,以便可以使用pip
和/或安装它python setup.py xxxxx
。该Web应用程序还包含React前端的静态文件。我使用webpack(因此使用node.js)为网站生成JavaScript捆绑包。我试图找出最pythonic的方式来打包它。通过谷歌搜索,我发现nodeenv
这似乎很相关。
理想情况下,我希望此软件包具有以下特征:
与一起安装pip install
或时python setup.py install
,不应安装node
和webpack
,但已安装的软件包应包括webpack输出。
本webpack
-生成输出应该不会需要被签入源回购。(即,它需要在包装过程中的某个时间点或另一个时间点生成。)
当通过pip install -e
或设置要开发的软件包时python setup.py develop
,应安装node
和webpack
(我怀疑前面提到的nodeenv
方法在这方面会很有用。)它也应在此时运行 webpack
,以便随后webpack
存在-generated内容。
如果很容易的话,如果webpack
在virtualenv激活时可以在“监视”模式下启动,而在停用虚拟环境时停止(这完全是一个扩展目标),那也很酷。
鉴于这些要求,我的直觉是我将需要对sdist
命令进行子类化,以使Webpack输出在源分发生成时生成。我还猜测我需要将develop
命令子类化以注入仅开发需求。
看来这是某人之前必须穿越的桥梁。有人有指针吗?
我认为你最好将这些问题分成不同的构建步骤,如果我们稍微剖析一下你的过程,就会出现这些步骤(假设 ,node
和npm
已经virtualenv
安装在你的盒子上)
这些步骤中的每一个都代表一个命令,该命令可能会出现在Makefile中,或者只是一个简单的 shell 脚本(如果您想坚持使用 python,则可以使用Fabric),因此您最终会得到以下命令:
python-requirements
node-requirements
build-static
build
-> python-requirements
, node-requirements
,build-static
现在您可以随意运行这些命令了!如果您正在部署,您将运行build
例如,它将连续运行每个步骤。
归档时间: |
|
查看次数: |
1171 次 |
最近记录: |