0

我们正在开发一个用于 JSF 应用程序的 javascript 组件,并且我们正在使用 Dojo。问题是我们只需要库的特定部分,并且我们只想将用于实现目标的文件/文件夹插入到我们的 web 应用程序中。

我们可以“手动”执行此操作,但将来我们可能需要从 Dojo 添加其他功能,然后我们将不知道我们需要哪些资源 -> 我想此时您意识到我们不是 Dojo/js 专家。

基本上我们正在寻找一种方法来自动化这个过程。我们正在考虑获取依赖项列表,然后创建一个小脚本来“过滤”文件。

这可能吗 ?有没有人试过这个?谢谢。

4

3 回答 3

0

好的,我们通过执行以下操作来做到这一点(以防万一有人需要):

    * 声明一个 JSF 过滤器并将其映射到 /js/*(所有 dojo 资源都在 /js 文件夹下,这可能需要修改以适合您的文件夹结构);这样,所有对 dojo 资源的请求都将被过滤。
    * 在过滤器类中,获取所有请求的文件:(HttpServletRequest) request).getRequestURI() 并将其逐行写入文件中:现在您拥有所有需要的资源。
    * 使用脚本逐行解析该文件,然后将文件复制到另一个位置 -> 构建文件夹结构。
    * 使用 WebContent 文件夹中创建的文件(或任何你需要的地方),你有一个干净的库 -> 你只部署你使用的东西。
于 2012-12-11T10:47:12.087 回答
0

我可能误解了您的要求,但我认为 dojo 可以满足您的要求。由于最新版本的 dojo 遵循异步模块定义 (AMD) 格式,因此您使用全局require函数来描述特定代码块具有哪些依赖项,并且仅加载这些模块。来自sitepen dojo 介绍的示例:

require(["dojo/dom", "dojo/domReady!"], function(dom){
    var greeting = dom.byId("greeting");
    greeting.innerHTML += " from Dojo!";
});

如果您只想加载单个<script/>标签,则需要查看 dojo 构建器。使用在线构建工具您可以选择要包含在 dojo.js 层中的包,它会将所有内容捆绑到一个 zip 文件中,该文件包括 dojo.js/dojo.js.uncompressed.js,其中包含 dojo 核心以及您选择的模块。

于 2012-12-10T13:43:33.177 回答
-2

网络上充斥着成熟的 JavaScript 库,他们说它们会拯救你的一天,让你的网络开发生活更轻松。我们鼓励您包含这些“仅 80 kb”的库,这些库应该是满足您所有需求的解决方案,并且实际上使网站能够自行运行。不用说,我不是 JavaScript 库的忠实追随者,尤其是因为它们几乎总是包含大量多余的代码,所以我想我应该将一个只有基本 JavaScript 函数的小型库放在一起。

其结果是 EJ - Essential JavaScript。

EJ 由我一直使用的函数组成,它们使编写 JavaScript 变得更快,结果是能够更有效地完成工作。这也是关于将您为每个网站一次又一次编写的内容放在一个整洁而小巧的文件中,以便能够专注于您需要解决的新问题

于 2012-12-10T12:46:40.330 回答