如何管理Javascript库中的依赖项

时间:2012-03-21 16:36:26

标签: javascript jquery dependency-management

我正在制作一个将分发给第三方的jQuery小部件。它非常简单,它将进行ajax调用并在页面上的div上放置一些内容。

有没有一种简单的方法可以在一个文件中为他们提供所需的一切,而不会发生名称空间冲突?

我知道我可以创建一个最小化jQuery,jQuery UI和我自己的代码的文件,但如果它们有其他版本的jQuery,则可能会产生冲突。 (例如,我可能将我的代码基于jQuery 1.7,并且出于某种原因他们可能正在运行jQuery 1.3。)那么我的问题有什么好的解决方案吗?

4 个答案:

答案 0 :(得分:2)

我知道自从你发布这个问题已经有很长一段时间了,但是如果有人像我一样从google到这里,这就是你正在寻找的解决方案:

http://www.angrycoding.com/2011/09/managing-dependencies-with-requirejs.html

总结一下,您可以使用require仅为您的应用加载不同的jquery版本,因此它不会与旧代码冲突。

答案 1 :(得分:1)

您不应创建包含外部库的缩小版本。相反,请在README中明确说明您的依赖项。如果有人使用jQuery版本不足,那就太难了。

有关管理依赖关系的更一般方法,请查看require.js

答案 2 :(得分:1)

也许正在使用

var $j = jQuery.noConflict();

// Use jQuery via $j(...)
$j(document).ready(function(){
    $j("div").hide();
});

来自http://api.jquery.com/jQuery.noConflict/

答案 3 :(得分:1)

您可以使用jquery.noconflict取消引用最后包含的jquery版本。

在您包含您的jquery版本之后,请执行以下操作:

var yournamespace = jQuery.noConflict();

然后使用类似于:

的命名空间代替$ jquery运算符

yournamespace(“div p”)。hide();