如何将资源注册表资源迁移到 Plone 5

How to migrate resources registry resources to Plone 5

我有一个附加组件 (collective.lazysizes),它使用以下 jsregistry.xml 文件将一些 JavaScript 资源包含到 Plone 4 资源注册表中:

<?xml version="1.0"?>
<object name="portal_javascripts">
  <javascript id="++resource++collective.lazysizes/ls.respimg.min.js"
      cacheable="True" compression="none" cookable="True" enabled="True"
      expression="" inline="False" />
  <javascript id="++resource++collective.lazysizes/lazysizes.min.js"
      cacheable="True" compression="none" cookable="True" enabled="True"
      expression="" inline="False" />
</object>

如何在 registry.xml 中将其转换为 Plone 5 包?我必须将脚本合并到一个文件中吗?如何?我必须在捆绑包中添加 resources 密钥吗?它应该包含什么?超过一个 CSS 资源怎么办?

我发现 documentation 复杂,有时自相矛盾,对此不是很清楚。

这是我会做的:

  • 将所有 JS 放在一个文件中(例如名为 lazysizes-bundle.js)。它可以由 copy/pasting 他们手动完成(我们也可以使用 npm 和 gulp,在 package.json 中声明我们的 JS 依赖项并自动生成这个包,但在这种情况下,这只是 2文件,这可能有点矫枉过正),

  • registry.xml 中声明此捆绑包:

<records prefix="plone.bundles/lazysizes" interface='Products.CMFPlone.interfaces.IBundleRegistry'> <value key="enabled">True</value> <value key="jscompilation">++resource++collective.lazysizes/lazysizes-bundle.js</value> <value key="last_compilation">2016-01-01 00:00:00</value> <value key="compile">False</value> <value key="depends">plone</value> </records>

我们将 compile 设置为 False,这样 Plone 就不会尝试生成这个包,所以我们手动生成的包会被保留。

备注: