我想知道是否有人有在 Adobe CQ5 平台上使用 require.js 的经验。我正在编写一个 Chaplin.js(基于主干)单页应用程序,它将集成到我们正在处理的其他基于 CQ5 的站点中。 Chaplin 需要使用像 AMD/Common.js 这样的模块系统,我想确保我编译的 javascript 文件可以在 CQ5 的 clientlibs 中使用。在加载我的 javascript 模块之前在 clientlibs 中添加 require.js 作为依赖项一样简单吗?非常感谢有这方面经验的人的洞察力。
最佳答案
我已经将其实现为以更好的方式组织所有模块的解决方案,例如:
//public/js/modules/myModule.js
define('myModule',[ /* dependencies */] ,function( /* stuff here */ ))
在这样的组件中:
<% //components/component.jsp %>
<div>
<!-- stuff here -->
</div>
组件JS:
//components/component/clientlibs/js/component.js
require(['modules/myModule']);
最后,我配置了 require ( config.js
),并将 JS 模块存储在一个新的不同设计文件夹中。关闭后找到已编译的 JS </body>
以保证 JS 始终位于 HTML 之后的底部。
<!-- page/body.jsp -->
...
<cq:includeClientLib js="specialclientlibs.footer"/>
</body>
解决了在执行 JS 之前“准备好”所有内容的问题。我在为 clienlibs 编译工具管理的异步内容中遇到了一些问题,在生产中问题有所不同,但是在开发中,CQ 编译 JS 的顺序使我在顺序方面有些欠缺JS。问题确实比解释的要复杂一点,因为 JS 的数量真的很大,团队也很大,但简单来说,这是迄今为止我发现的最好的方法..
关于javascript - 在 Adobe CQ5 中使用 require.js 作为客户端依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222235/