我正在编写一个非常基本的JavaScript库,它使用jQuery的$ .ajax()函数。
我该如何管理这种依赖?我应该指示我的库的用户自己包含jQuery吗?我应该使用诸如RequireJS或脚本标记插入之类的东西来加载库中的jQuery吗?如果后者会更好,如果用户已经在使用jQuery,如何在不引起冲突的情况下执行此操作?
答案 0 :(得分:2)
我认为这取决于你是否有更多的依赖,而不是jQuery。
如果jQuery是你唯一的依赖项,并且你的库并不真正需要它自己的模块依赖系统,我不会推荐RequireJS。只需检查库中是否存在jQuery,否则会抛出错误。
如果您正在寻找一个灵活且可维护的库,我建议使用一些模块加载器(如RequireJS)。这也为您提供了使用build system的优势,它允许您组合和打包您的库
答案 1 :(得分:1)
我最后编写了自己的函数来获取原始帖子中推荐的愚蠢的小我的JSON数据。感谢所有回复的人。关于JavaScript库依赖关系的指导是非常有价值的,即使我走了另一条路。
我使用this Stack Overflow answer作为编写自己的函数来获取JSON的指南。我需要同步获取数据,因此我使用this other article中列出的提示调整了函数。
最后,我的功能看起来像这样。我希望它可以帮助其他人。
var fetchJSON = function(path, callback) {
var httpRequest = new XMLHttpRequest();
httpRequest.open('GET', path, false);
httpRequest.send();
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
var data = JSON.parse(httpRequest.responseText);
if (callback) callback(data);
}
}
}
答案 2 :(得分:0)
我建议你先建议用户包含jquery。如果您让我选择任何示例,您将看到这是一种真正使用的方法(例如.net框架)