Django的资产打包器。
项目描述
DPack
DPack是一个静态资产打包器,主要用于Django应用程序。
安装
pip install dpack
DPack包含多个可选处理器,用于处理如压缩和编译等任务
pip install dpack[cssmin]
pip install dpack[jsmin]
pip install dpack[sass]
或者使用pip install dpack[all]
来获取所有内容。
配置
DPack可以通过dpack.yaml
文件或使用Django时通过DPACK
设置进行配置。以下选项可用
assets
- 一个字典,其键是要创建的文件的路径(相对于output
),其值是处理并合并到该文件的文件列表。列表中的每个输入文件都可以通过指定处理器名称后跟冒号来由一个或多个处理器前缀。例如,cssmin:sass:somefile.scss
告诉DPack首先使用SASS编译somefile.scss
(通过在search
目录中搜索找到),然后使用cssmin
处理器对其进行压缩。defaults
- 一个字典,其键是文件扩展名(不带.
),其值是默认用于该类型输入文件的处理器列表。output
- 存储打包资产的路径。如果没有指定,这将是使用tempfile.mkdtemp(prefix="dpack-")
创建的临时目录。prefix
- 最终从URL前缀编译的资产将被服务,当通过rewrite
处理器重写CSS文件中的url
和@import
声明时使用。如果使用DPackFinder
,则默认为STATIC_URL
。register
- 一个字典,其键是要注册(或覆盖)的处理器名称,其值是解析到可调用的点分路径字符串。请参阅以下处理器。search
- 要搜索输入文件的目录列表。如果使用DPackFinder
,输入文件将通过除自身以外的任何STATICFILES_FINDERS
进行搜索。
示例 dpack.yaml
assets:
compiled/site.css:
- app1/first.css
- app2/second.css
- cssmin:sass:app3/third.scss
compiled/site.js:
- app1/first.js
- app2/second.js
defaults:
css:
- rewrite
- cssmin
js:
- jsmin
output: ./build
prefix: /static/
register:
custom: myapp.processors.custom
search:
- ./app1/static
- ./app2/static
示例 DPACK
设置
DPACK = {
"assets": {
"compiled/site.css": [
"app1/first.css",
"app2/second.css",
"cssmin:sass:app3/third.scss",
],
"compiled/site.js": [
"app1/first.js",
"app2/second.js",
],
},
"defaults": {
"css": ["rewrite", "cssmin"],
"js": ["jsmin"]
},
"output": "./build",
"register": {
"custom": "myapp.processors.custom"
},
}
在 Django 中使用 DPackFinder
只需将 dpack.finders.DPackFinder
添加到您的 STATICFILES_FINDERS
设置中,DPack 将使用 Django 的 staticfiles
应用程序搜索输入,当调用 collectstatic
时输出编译后的资源,并在通过 runserver
(DEBUG=True
) 或通过 django.contrib.staticfiles.views.serve
视图提供时即时生成资源。
STATICFILES_FINDERS = (
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
"dpack.finders.DPackFinder",
)
如果您将资源编译到 compiled/css/site.css
,您可以通过在模板中使用 {% static "compiled/css/site.css" %}
来引用它,就像引用任何其他静态资源一样。这些资源随后也会通过您的 STATICFILES_STORAGE
进行后处理,因此您可以在无需额外配置的情况下使用如 Whitenoise 的 CompressedManifestStaticFilesStorage
。
命令行界面
DPack 附带一个名为 dpack
的命令行实用程序。单独运行时,它将查找 dpack.yaml
配置文件,并根据配置打包找到的任何资源。您可以使用 -c
指定配置文件或使用 -s
指定 Django 设置模块,并使用 dpack -y
输出加载的配置。运行 dpack -h
以获取选项的完整列表。
处理器
处理器是简单的 Python 可调用函数,它接受三个参数:text
(到目前为止已处理的文本),input
(包含如相对 name
和绝对 path
等内容的 dpack.base.Input
对象),以及 packer
(包含如 prefix
等内容的 dpack.DPack
实例)。例如,cssmin
处理器实现如下:
def process(text, input, packer):
return rcssmin.cssmin(text)
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
dpack-0.4.2-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8866702b0135b363e33d97b5d42857a29cbb0ec3315d2caf2541b60f2cb2c0cc |
|
MD5 | 5547a3092a27a9c5fb513ae13982f75b |
|
BLAKE2b-256 | f29a45d12e3115667f99c6480b56b1c6f6910994df28a85846c6691b30db9fc8 |