将RequireJS模块压缩成包。

django-compressor-requirejs的Python项目详细描述


用于django-compressor集成的预编译程序 RequireJS-将模块放入bundles

此库不使用r.js压缩器,而是收集 模板中的依赖项并将它们解析为bundle,让django compressor进行压缩。

安装

首先,install django-compressor 进入你的django项目并配置它。然后安装django压缩机要求js:

pip install django-compressor-requirejs

并将requirejs.RequireJSCompiler添加到COMPRESS_PRECOMPILERS设置中:

COMPRESS_PRECOMPILERS = (
    ('text/requirejs', 'requirejs.RequireJSCompiler'),
)

现在,您可以在主RequireJS脚本标记上使用内容类型text/RequireJS:

{% compress js %}
    <script type="text/requirejs" src="{% static "website/js/libs/require.min.js" %}"></script>
{% endcompress %}

默认情况下,库将生成一个包,其中包含模板中找到的所有模块 以及他们的依赖。找不到动态依赖项。它还设置baseUrl 给你的STATIC_URL

如果COMPRESS_ENABLEDFalse,则只添加配置并加载requirejs 模块一个接一个,没有捆绑。

设置

您可以通过三个选项控制需求:

REQUIREJS_PATHS是一个dict,其样式与requirejs路径配置相同。例如 使jquery在主命名空间("jquery": "<some path>/jquery.min")中可用。

REQUIREJS_BUNDLES是一个dict,用于指定将哪些模块捆绑在一起:

REQUIREJS_BUNDLES = {
   'abovethefold': ['website/awesome', 'website/evenmoreawesome'],
}

此设置中未提及的每个模块最终都将位于maincatch all捆绑包中。

REQUIREJS_APP_ALIAS(默认值None)允许静态根目录中的javascript目录由 只是应用程序名。对website/some_module的require/define调用将被搜索为 {{ STATIC_URL }}/website/<alias>/some_module.js如果在{{ STATIC_URL }}/website/中找不到。

发动机罩下

django compressor requirejs使用了requirejs的bundles配置选项,使绑定成为可能 模块在一起,让RequireJS在需要其中一个模块时获取包。其原理是模块 捆绑在一起确实经常一起使用,这降低了浏览器必须执行的请求量。

它在django压缩器中对用于加载requirejs本身的脚本标记使用过滤机制,注入 将配置指向STATIC_URL,如果启用压缩,则指向压缩包。

通过搜索所有模板目录中的requirejs调用并解析它们的 依赖关系。这是纯文本搜索,没有真正的javascript或html解析(类似于makemessages)。 然后对找到的所有模块进行类似的依赖性扫描。

由于未进行分析或计算,因此不支持使用变量动态加载依赖项。如果你 要让django compressor requirejs接收它,请使用所有选项(如果可行,为 当然)。

因此存在django需求和压缩子集jjs。< /H2>

是的,他们有;如果你想用R.JS压缩器和Django压缩器,请 看看compressor_requirejs。如果你不使用 Django压缩机,参观Etianen的django-require

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

推荐PyPI第三方库


热门话题
java变量尚未初始化   java组织。阿帕奇。平民网ftp。FTPClient:530请使用用户登录并通过   java CORS不使用支持zuul的网关和swagger   java在ImageView上设置onclickListener以查看放大的图像   java如何使用PropertyTils从映射内的列表中获取元素?   java在安卓中隐藏SnackBarLayout之前有必要检查isShown()吗?   javajavax。ws。rs.InternalServerErrorException:Restful for JSON响应中的HTTP 500内部服务器错误   java使用com。spotify,如何设置图像版本   java避免在对象上使用同步锁   java Eclipse工作区因不正确关闭而损坏   Vaadin视图中的java自动布线服务和组件不工作   java解析文本文件,基于字数   java驱动程序“com.mysql.jdbc.Driver”不支持url“null”   java过滤操作\u处理\u文本以在检测到电话号码时执行操作   java CDI@Instance收集@Any,但访问限定符(特别是@Named)