跳转到主要内容

Pipeline 是一个用于 Django 的资产打包库。

项目描述

Pipeline

Jazzband GitHub Actions Coverage Documentation Status

管道是Django的一个资产打包库,提供CSS和JavaScript的连接和压缩,内置JavaScript模板支持,以及可选的数据-URI图像和字体嵌入。

Django Pipeline Overview

安装

要安装它,只需

pip install django-pipeline

快速入门

当您运行Django的collectstatic命令时,Pipeline会将从STATICFILES_DIRS编译并压缩您的资产文件到STATIC_ROOT

以下简单步骤将Pipeline添加到您的项目中,将多个.js.css文件编译成一个,并对其进行压缩。

将Pipeline添加到已安装的应用中

# settings.py
INSTALLED_APPS = [
    ...
    'pipeline',
]

使用Pipeline指定的类为STATICFILES_FINDERSSTATICFILES_STORAGE

STATICFILES_STORAGE = 'pipeline.storage.PipelineManifestStorage'

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'pipeline.finders.PipelineFinder',
)

配置Pipeline

# The folowing config merges CSS files(main.css, normalize.css)
# and JavaScript files(app.js, script.js) and compress them using
# `yuglify` into `css/styles.css` and `js/main.js`
# NOTE: Pipeline only works when DEBUG is False
PIPELINE = {
    'STYLESHEETS': {
        'css_files': {
            'source_filenames': (
                'css/main.css',
                'css/normalize.css',
            ),
            'output_filename': 'css/styles.css',
            'extra_context': {
                'media': 'screen,projection',
            },
        },
    },
    'JAVASCRIPT': {
        'js_files': {
            'source_filenames': (
                'js/app.js',
                'js/script.js',
            ),
            'output_filename': 'js/main.js',
        }
    }
}

然后,您必须手动安装编译器和压缩器的二进制文件。

例如,您可以使用NPM安装它们,并从您的项目路径中的node_modules目录引用它们

PIPELINE.update({
    'YUGLIFY_BINARY': path.join(BASE_DIR, 'node_modules/.bin/yuglify'),
})
# For a list of all supported compilers and compressors see documentation

在模板中加载静态文件

{% load pipeline %}
{% stylesheet 'css_files' %}
{% javascript 'js_files' %}

文档

有关文档、用法和示例,请参阅:https://django-pipeline.readthedocs.io

问题

您可以在问题页面上报告错误并讨论功能。

变更日志

请参阅HISTORY.rst

历史

3.1.0

  • 修复了连接,以更新相对的sourceMappingURL路径(#808)。这实际上破坏了Django 4+上pipeline的使用。

  • 修复了注入到HTML页面中的django-pipeline-error框,除了背景色外还硬编码文本颜色。这确保了即使在以浅色文本渲染的页面上,文本也是可读的。

  • 为django-pipeline-error框添加了过滤,以删除由某些工具包含的ANSI颜色代码。

3.0.0

  • 使用Pypy 3.10

  • 放弃对Python 3.7的支持

  • 放弃对Django 2的支持

  • 添加Python 3.12支持

  • 添加Django 4.2支持

  • 添加Django 5.0支持

2.1.0

  • 更新README.rst并添加Pipeline概述图像。

  • 添加TypeScript编译器支持。

  • 放弃对manifesto包的支持。

  • 添加对Python 3.11和Django 4.1的支持

2.0.9

  • 修复了文档中的某些拼写错误。

  • 修复了从编译器和压缩器报告的错误中的字符串类型。

  • 更新了github actions矩阵以支持主机和Django。

  • 更新了github actions配置,以使用第三方动作的现代版本。

  • 改进了打包器,如果文件不存在,则将其复制到(S3)存储中(#502)。

2.0.8

  • 添加了对Django 4.0的兼容性。感谢@kevinmarsh(#760)

  • 添加了对Django 4.0Python 3.9Python 3.10的测试。感谢@kevinmarsh(#739)

  • 引入了CODE_OF_CONDUCT.md以供项目使用。感谢@hugovk(#758)

  • 在PipelineCachedStorage的文档中添加了精度。感谢@gatsinski(#739)

  • 由于包未发布Python 3的官方版本,并且自2013年以来没有任何新包发布,因此放弃了对slimit压缩器的支持(#765)。

  • 编辑github actions矩阵:django 3.2.9支持python 3.10,删除python 4.0(不存在),并排除django-main的pypy-3.8。

  • 添加了.pre-commit-config.yaml。感谢@hugovk(#762)

  • 由于NPM上的CoffeeScript已移动到“coffeescript”,因此更新了package.json

  • 使用Django 4.0和Python 3.10更新了setup.py

2.0.7

  • 添加了对Django 3.2的兼容性(感谢@jramnai在#751)

2.0.6

2.0.5

  • 添加对 Django 3.1 的兼容性。

  • 从 Django 中移除了 CachedStaticFilesStorage。添加对当前版本的检查,以防止导入时出错。感谢 @vmsp。

  • Django.template.base 中的上下文已被从 Django 中移除,并且不再在 django-pipeline 中使用。

  • 由于 Django 中 Media.render_js 的变化,修复了 django-pipeline 的 widgets 测试。更多信息请参阅 Django 问题追踪 #31892。

2.0.4

  • 添加对 css-html-js-minify 的支持,以压缩 JS 和 CSS。

  • 更新压缩器文档以包含 css-html-js-minify。

  • 为 css-html-js-minify 压缩器创建测试。

  • 通过分组测试 yuglify 压缩器进行优化。

2.0.3

  • 从 pipeline setup.py 依赖项中移除 futures。

2.0.2

  • 修复 Middleware 以正确解码 HTML。感谢 @gatsinski。

  • 保持 mimetypes 为 str 类型。感谢 @benspaulding。

  • 根据 #642 添加 'NonPackagingPipelineManifestStorage' 并更新文档:storages.rst。感谢 @kronion。

2.0.1

  • 添加 ManifestStaticFilesStorage 的子类。感谢 @jhpinson。

  • 将文档更改为在配置中使用 PipelineManifestStorage 而不是现在已弃用的 PipelineCachedStorage。

  • 将 collections.abc 中的 MutableMapping 的导入改为使用。

2.0.0

  • 确定放弃对 Python 2 的支持。.

  • 放弃对 Python 3.5 的支持(与 PEP 498 不兼容)。

  • 移除 'decorator.py',该文件用于在 PipelineFormMedia 中实现 Python 2 和 3 之间的向后兼容性。

  • 将 'format' 替换为 'fstring'(PEP 498:文本字符串插值)。

  • 移除旧的从 'django.utils.six' 的导入以及这些修复(1.7.0)。

  • 移除未覆盖的 Python 和 Django 版本的测试。

  • 将 Pypy 测试替换为 Pypy3。

  • 明确指定文件在读取/写入时的二进制模式。

  • 设置测试中打开文件的选项以处理通用换行符。

  • 将文档版本升级到 2.0 以符合项目版本。

1.7.0

  • 发布最后一个在 Python 2 上工作的 django-pipeline 的重要版本。

  • 感谢自 1.6.14 版本以来所做的所有修改,这些修改我们无法一一列举。

  • 在开发期间进行优化以节省时间。感谢 @blankser。

  • 编辑 setup.py 以遵循文档的建议。感谢 @shaneikennedy。

  • 添加对 Django 3.0 和 Python 3.8 的测试。

  • 为在 Django 3.0 中已移除的 django.utils.six 添加替代导入。

1.6.14

  • 修复打包问题。

1.6.13

  • 修复 Windows 上的斜杠路径问题。感谢 @etiago。

  • 修复 CSS URL 检测器以正确匹配引号。感谢 @vskh。

  • 添加一个用于编译的 compiler_options 字典,允许传递选项到自定义编译器。感谢 @sassanh。

  • 验证对 Django 1.11 的支持。感谢 @jwhitlock。

1.6.12

  • 支持 Django 1.11。

  • 修复了 Windows 上的 os.rename 错误。感谢 @wismill。

  • 修复了在发生错误时视图编译错误的问题。感谢 @brawaga。

  • 在表单和小部件中添加对 Pipeline CSS/JS 包的支持。感谢 @chipx86。

1.6.11

  • 修复性能回归问题。感谢 Christian Hammond。

1.6.10

  • 添加 Django 1.10 兼容性问题。感谢 Austin Pua 和 Silvan Spross。

  • 改进文档。感谢 Chris Streeter。

1.6.9

  • 各种构建改进。

  • 改进 setup.py 分类器。感谢 Sobolev Nikita。

  • 改进文档。感谢 Adam Chainz。

1.6.8

  • 使 templatetags 更容易进行子类化以实现特殊的渲染行为。感谢 Christian Hammond。

  • 更新了 readthedocs 的链接。感谢 Corey Farwell。

  • 修复了一些日志消息,以便正确引用新的 PIPELINE 设置结构。感谢 Alvin Mites。

  • 将文件过时检查更改为直接使用 os.path 方法,避免一些 django 存储配置中可能出现的潜在 SuspiciousFileOperation 错误。

1.6.7

  • 添加一个用于在提供服务之前收集静态文件的视图。此视图的行为类似于 django 的内置 static 视图,并允许运行收集器以处理图像、字体和其他不需要编译的静态文件。感谢 Christian Hammond。

  • 更新ES6编译器的文档,以明确文件名要求。感谢Nathan Cox。

  • 在浏览器中添加编译器错误输出。这在使用devserver编译文件时提供了更好的体验。感谢Christian Hammond。

  • 使单元测试针对Django 1.6和1.7运行。感谢Sławek Ehlert。

1.6.6

  • 修复过滤掉需要查找器的文件的问题。

  • 允许编译器覆盖输出路径。

  • 修复编译器执行失败时的错误报告。

  • 修复在使用一些基于nodejs的编译器和压缩器运行collectstatic时的IO错误。感谢Frankie Dintino。

  • 修复在Windows上运行单元测试时的兼容性问题。感谢Frankie Dintino。

  • 为编译器和压缩器添加单元测试。感谢Frankie Dintino。

1.6.5

  • 修复Django < 1.8的兼容性问题。感谢David Trowbridge。

  • 允许在开发期间禁用收集器。感谢Leonardo Orozco。

1.6.4

  • 修复压缩器的子进程调用。

1.6.3

  • 修复压缩器命令扁平化。

1.6.2

  • 移除subprocess32的使用,因为它破坏了通用支持。

1.6.1

  • 修复路径引号问题。感谢Chad Miller。

  • 尽可能使用subprocess32包。

  • 文档修复。感谢Sławek Ehlert和Jannis Leidel。

1.6.0

  • 添加对Django 1.9的全面支持。

  • 放弃对Django 1.7的支持。

  • 放弃对Python 2.6的支持。

  • 向后不兼容:更改配置设置。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。

源代码分发

django_pipeline-3.1.0.tar.gz (71.5 kB 查看散列值)

上传时间 源代码

构建分发

django_pipeline-3.1.0-py3-none-any.whl (40.5 kB 查看散列值)

上传时间 Python 3

支持