gpt4 book ai didi

javascript - 您对管理 JavaScript 依赖项提案的想法

转载 作者:行者123 更新时间:2023-11-29 15:52:29 25 4
gpt4 key购买 nike

我最近在开发 Rich Internet Application 的背景下进行了大量的 JavaScript 编程。 .我在开发之初的观点与现在差不多; JS RIA 有效,但缺乏开发工具。

我特别想念的一个工具是管理依赖项。我发现我最终得到了很多 HTML 页面,这些页面声明了它们所有的 JS 文件依赖关系,这变得很难维护。

我想知道的是您对我所从事的项目的看法:Maven JavaScript 导入。我的意图是最终将项目作为开源发布,但目前我只是在修补它(虽然已经开发了大量内容)。

声明依赖

我的想法基于使用 Maven 将 JS 文件声明为依赖项。这就是我在 pom 文件中声明对 jQuery 的项目依赖的方式:

<dependency>
<groupId>com.jquery</groupId>
<artifactId>jquery</artifactId>
<version>1.4.2</version>
<type>js</type>
</dependency>

然后依赖于 jQuery 的文件有两种声明其依赖性的方法:

  1. 通过注释 block 中的@import 语句;或
  2. 简单地声明一个需要的全局变量。

导入

显式导入采用以下形式:

/**
* @import com.jquery:jquery
*/

如您所见,导入格式为 <groupId>:<artifactId> .该方法的优点是在具有依赖性的 js 文件中没有声明文件/版本信息。这些 GAV 参数解析为 POM 文件中声明的工件。

全局变量

而不是上面的@import,如果依赖文件在全局范围内声明变量,则只需声明任何这些全局符号即可。例如,如果一个文件需要 jQuery:

var $;

... 因为 $ 当然是 jQuery 定义的全局变量。

并非所有依赖项都声明全局符号,这也是提出 @import 的原因,但我认为声明所需的符号非常干净(并且符合 JSLint!)。

总结

最终,需要 JS 资源的 HTML 文件只是声明它需要的直接资源,而不是所有的依赖项。我的 Maven 插件将遍历所有 JS 文件(源文件和依赖项)并构建一个符号树。任何包含资源的 HTML 文件都将具有由插件注入(inject)的脚本元素,以确保包含所有依赖项。当项目的阶段执行时,这一切都将以神奇的 Maven 方式发生,例如在测试或资源阶段执行之前。

那你怎么看?这是您可能在 JS RIA 项目中使用的东西吗?

最佳答案

我同意 JavaScript 开发人员在他们的项目中缺少适当的依赖管理。我并没有完全遵循 HTML 文件如何只导入单个文件 js 依赖项,然后最终也包含所有依赖项。您是否计划过滤 HTML 文件并将脚本导入替换为串联类的导入?

如果您有兴趣,我也走过同一条路,最后得到了 https://github.com/ProggerPete/JavaScript-Tools .它对我来说效果很好。

关于javascript - 您对管理 JavaScript 依赖项提案的想法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3766749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com