这是一个关于 setuptools 的问题,并为Web应用程序创建了一个python发行版。
上下文
这是一个django项目,我们通过私人pypi分发给我们自己,而不是外部用户(尚未)。目前我们运行python setup.py sdist
来创建发布,然后将其上传到我们的pypi。我怀疑它只是源代码的副本,作为tar.gz.我们检查来源进行开发。我们不通过pip安装dev(也许我们应该?)。
最近该项目已开始使用nodejs
。现在,这意味着我们现在需要进行“构建”来创建不属于源代码的新文件,但需要进行部署。构建过程需要一堆节点包,这些节点包不是Web服务器最终部署的必要或所需部分。
通过the packaging documentation阅读,它描述了sdist
的{{1}},bdist_wheel
和develop
目标,但我不清楚如何应用这些目标对我们的情况。
当我们从我们的pypi拉出来时,我们应该拉什么?
网络服务器的预构建可部署代码版本,没有源代码?或
我们运行其他东西的代码,用于构建和安排需要的东西?如果是这样,相应的setup.py目标是什么(sdist,bdist_wheel,一个新的自定义目标)?
我们应该何时以及如何运行构建?
要“构建”应用程序,我们运行nodejs-javascript脚本,例如:setup.py
,npm install
或less x y x
或python,将源文件转换为可部署文件的脚本。我们不希望在Web服务器上使用这些东西。
讨论
因此,一般来说,正如您所知,首先我们对何时将源文件转换为分发文件感到困惑。第二,如何实际实现: subprocess 从子类webpack -p
调用shell脚本?!?
我们不希望将成品推送到pypi,因为我们创建构建的所有位和bob都不会以整齐的setuptools.command
中心方式捕获和自动化。那么我们何时,何地以及如何将构建过程合并到我们的setuptools发行版中呢?
*注意:对我们使用tox
的内容/地点添加更多疑惑