javascript - 在 Adob​​e CQ5 中使用 require.js 作为客户端依赖

标签 javascript backbone.js requirejs aem chaplinjs

我想知道是否有人有在 Adob​​e 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 - 在 Adob​​e CQ5 中使用 require.js 作为客户端依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222235/

相关文章:

javascript - 如何使用循环创建多个 Backbone View ?

javascript - JointJS 中的自动换行

javascript - 在动态加载的内容上使用 bootstrap .modal()

javascript - Chrome 扩展程序包含错误

javascript - 具有多个模型的主干集合?

javascript - 数据库是我们唯一需要的后端吗?

javascript - 将模块注入(inject) AngularJS

javascript - RequireJS:如何处理传递依赖项失败?

vue.js - 与 RequireJS 结合使用时出现“Vue 未定义”问题

javascript - DOM 操作中 eval() 的替代方法