软件传统Web用户界面

swh.web的Python项目详细描述


SWH网络

此存储库保存软件传统Web应用程序的开发:

有关如何使用这些组件的文档,以及它们的uri方案的详细信息 可以在文档文件夹中找到。生成的html文档可以阅读和浏览 请访问https://docs.softwareheritage.org/devel/swh-web/index.html" rel="nofollow">https://docs.softwareheritage.org/devel/swh web/index.html

技术细节

这些应用程序的功能是:

  • 在后端启用了以下扩展的django web frameworkdjango web framework

  • 前端的webpack可以实现更好的静态资产管理,包括:

    • 资产依赖关系管理和检索
    • 定制javascript代码的linting(通过eslint)和样式表(通过stylelint)
    • 使用es6语法和高级javascript功能,比如异步/等待,或者由于ref="https://babeljs.io/" rel="nofollow">babel(ES6到ES5 Transpiler和PolyFills提供程序)
    • 资产精简(使用tersercssnano)但也为生产使用消除死代码

如何构建和运行

要求

首先,您需要安装一个完整的SWH开发环境。

要运行后端,需要安装以下Python3模块:

  • 美化组4
  • django>;=1.11.0
  • djangorestframework=3.4.0
  • Django_Webpack_加载器
  • Django_js_reverse
  • 文件
  • 文件魔法=0.3.0
  • htmlmin
  • lxml
  • 分段
  • 皮潘多克
  • python dateutil
  • 皮亚姆
  • 请求

要编译前端资产,您需要安装nodejs>;=8.x和纱线。如果您使用的是Debian Stretch,则可以从Stretch Backports存储库中轻松安装最新的nodejs。

可以按照以下说明安装yarn软件包。 或者,您可以使用npm install yarn安装yarn,并在运行make时添加yarn=node_modules/yarn/bin/yarn作为参数。

请注意,webpack生成的静态资产包不存储在git存储库中。按照下面的说明生成它们,以便能够运行Web应用程序的前端部分。

设定目标

下面是可以从swh web的根目录执行的可用make目标列表,以便在各种配置下构建和/或执行web应用程序:

  • 运行django webpack dev server:使用webpack dev server编译和服务未优化(没有混合和死代码消除)的前端静态资产,并使用开发集运行django serverNGS。这是开发swh web时建议使用的目标,因为它允许在修改源文件时自动重新加载应用程序的后端和前端部分(.py,*.js,*.css,*.html)。

  • 运行django webpack dev:使用webpack编译未优化的前端静态资产(无缩小、无死代码消除),并使用开发设置运行django服务器。当只想开发应用程序的后端时,这是推荐的目标。

  • 运行django webpack prod:使用webpack编译优化的(带缩小和死代码消除)前端静态资产,并使用生产设置运行django服务器。这有助于在生产模式下测试应用程序(与django提供静态资产不同)。生产设置特别启用高级django缓存,您需要安装memcachedmemcached才能使用该功能。

  • 运行django server dev:使用开发设置运行django server,但不通过webpack编译前端静态资产。

  • 运行django server prod:使用生产设置运行django服务器,但不通过webpack编译前端静态资产。

  • 运行gunicorn服务器:在agunicorn中运行具有生产设置的web应用程序工作程序,因为它们将处于实际的生产环境中。

一旦执行了其中一个目标,就可以通过将浏览器指向http://localhost:5004来执行web应用程序。

纱线目标

以下是仅执行前端静态资产编译(不执行Web服务器)的可用纱目标列表:

  • 构建开发:编译未优化(没有混合和死代码消除)的前端静态资产,并将结果存储在swh/web/static文件夹中。

  • 构建:编译优化的(混合和死代码消除)前端静态资产,并将结果存储在swh/web/static文件夹中。

在执行swh web的debian打包之前,必须执行构建目标,以便包中包含专门用于生产环境的优化资产。

要执行这些目标,请发出以下命令:

$ yarn <target_name>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java FloatingActionButton单击事件不工作   java如何添加Hashmap   java Android应用程序启动时崩溃SecurityException   java重新排列数组的最快方法是什么   java如何延长SOAP头消息时间戳的过期时间   java ClassNotFoundException:com。谷歌。gwt。朱尼特。服务器杜松   使用EasyMock对java类扩展存储过程进行单元测试   java将带有getter和setter的变量添加到现有类中   java如何在JTextArea旁边使用JScrollPane?   java瞬态变量可以以任何方式序列化吗?   java 2线程vs 2进程(设计/性能/隔离)   java Corda:如何将AndComposition与Vault CustomQueryCriteria一起使用   java缺少预处理器问题   javajavafx添加了一个滚动窗格弹出窗口,当用户点击弹出窗口时关闭   java称之为动态方法   java Glassfish:异常跟踪切割   filewriter Java如何将资源(内部文本文件)写入目录?   java如何确定ANTLR 4解析表达式所使用的规则?   java清除字符串之间的字符串   amazon dynamodb我正在使用java和Aws dynamo db开发Alexa skill。每次我输入数据时,它都会发送一个用户id作为主键,我可以删除它吗