第三方JavaScript应用程序依赖关系管理

时间:2012-12-05 01:17:58

标签: javascript dependency-management

我正在为第三方JavaScript应用程序做出贡献,我们称之为X.网站所有者可以将X放在他们自己的网站中,让我们使用脚本标记将其称为Y,并且X可能会呈现一些内容,想想像Disqus这样的事情。

X可能依赖于诸如Handlebars,Underscore.js等库。我面临以不干扰Y的方式解决这些依赖关系的问题。如果X为自己拉入Handlebars和Underscore.js,并且Y已经包含这些库,由于存在两个可能导致未定义行为的版本,事情可能会爆炸。

那么处理这种情况的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

由于您无法保证任何网站所有者将使用与X相同的依赖关系管理系统,为什么不使用条件加载?只需检查是否存在(例如)window.jQuery,如果尚未定义,则仅加载jQuery。对于您的正确命名空间的第四方组件等等等等。如果您要求用户只在页面底部加载库,那么您应该没问题。

您可以使用像http://yepnopejs.com/这样的条件加载器来提高清晰度和速度。

或者,您是否可以要求您的用户自己插入所需的库?您在分发点声明了您的依赖关系(并提供代码),并在页面上没有其他所需的库时提供好看的错误状态(例如,对话框,console.log等)。