javascript - 如何调用客户端库的特定js文件?

标签 javascript aem client-library

我已将所有 js 文件组织到一个通用的 clientlib 类别中。例如

 ->etc
   ->designs
    ->myapp
     -> clientlibs
      -> base
        -> js
          -> app1.js
          -> app2.js
          -> app3.js

因此,当我访问/etc/designs/myapp/clientlibs/base.js 时,它会返回一个大的合并 js,其中包含所有包含的 js 的内容。有没有办法从这个base.js访问特定的js(比如app2.js)。我们可以使用相对路径,例如/etc/designs/myapp/clientlibs/base/js/app2.js 并且它可以工作。

但是有没有更好的方法(也许使用像/clientlibs/base.app2.js这样的选择器)来返回这个js? 或者这是访问特定js的唯一方法?

最佳答案

像您一样使用相对路径是访问特定 .js 文件的方法。客户端库并非设计为通过选择器访问。理想情况下,您希望始终通过客户端库加载 JavaScript,因为它将脚本组合到单个 HTTP 请求中可以提高性能(更多的 HTTP 请求需要比 1 个请求更长的时间来加载)。它还压缩脚本以使其更小。因此,您可以在 app1.js 等文件中使用完整的空格和注释和格式来获取源脚本,然后通过基本客户端库加载它们,从而删除最终用户下载的脚本中不需要的空格和注释.

如果您只需要客户端库的部分,您可以定义仅包含您想要的部分的第二个客户端库。您可以将相同的源文件(例如 app1.js)包含在多个不同的客户端库中。对于您的用例,这听起来是最好的方法。

为了进行调试,您始终可以添加 ?debugClientLibs=true 查询字符串,以便临时在浏览器中再次查看各个文件。

关于javascript - 如何调用客户端库的特定js文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39233836/

相关文章:

java - AEM 6.0 Web 控制台 bundle (OSGi bundle )中安装的软件包未正确安装(状态应为 Activity 未安装)

javascript - 适用于 JavaScript 的 Google API 客户端库 - 方法调用时出现 404

java - 使用google api explorer将数据上传到google云存储

python - 自更新 1.8.8 起,开发服务器上出现 Google Cloud Storage Client Library 400 错误

javascript - 同步多个 jQuery 属性更新

javascript - 无法在客户端呈现 EJS 模板

javascript - node.js ffmpeg spawn child_process 意外数据输出

javascript - 如何在 Phaser-Framework 中休眠一定秒数

java - 无法访问实例化类的 protected 方法

osgi - 当匹配的运行模式数相同时,将应用哪个配置