Pipeline 是一个用于 Django 的资产打包库。
项目描述
Pipeline
管道是Django的一个资产打包库,提供CSS和JavaScript的连接和压缩,内置JavaScript模板支持,以及可选的数据-URI图像和字体嵌入。
安装
要安装它,只需
pip install django-pipeline
快速入门
当您运行Django的collectstatic命令时,Pipeline会将从STATICFILES_DIRS编译并压缩您的资产文件到STATIC_ROOT。
以下简单步骤将Pipeline添加到您的项目中,将多个.js和.css文件编译成一个,并对其进行压缩。
将Pipeline添加到已安装的应用中
# settings.py
INSTALLED_APPS = [
...
'pipeline',
]
使用Pipeline指定的类为STATICFILES_FINDERS和STATICFILES_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.0、Python 3.9和Python 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
添加了terser(JS压缩器,用于ES5和ES6)(感谢@felix-last在#696)
将测试移动到GitHub Actions:https://github.com/jazzband/django-pipeline/actions(#738)
修复了来自Django的弃用警告(感谢@edelvalle在#731)
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的支持。
向后不兼容:更改配置设置。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。