javascript - 3rd-party JavaScript 应用程序依赖管理

标签 javascript dependency-management

我正在为第 3 方 JavaScript 应用程序做出贡献,我们称其为 X。网站所有者可以将 X 放置在自己的网站中,我们称其为 Y,使用脚本标记,X 可能会呈现一些内容,响应事件等。想想像 Disqus 这样的东西。

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

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

最佳答案

既然你不能保证任何网站所有者都会使用与 X 相同的依赖管理系统,为什么不直接使用条件加载呢?只需检查(例如)window.jQuery 是否存在,并且仅在尚未定义时加载 jQuery。对于正确命名的第四方组件,依此类推。如果您要求用户在页面底部加载您的库,应该没问题。

您可以使用条件加载器,例如 http://yepnopejs.com/为了清晰度和速度。

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

关于javascript - 3rd-party JavaScript 应用程序依赖管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13714834/

相关文章:

javascript - Rails 3 - 在 JavaScript 响应中转义部分生成的 html

android - 如何在 Gradle 中查找依赖冲突

java - pom为3个应用程序使用Spring-mvc的公共(public)依赖

react-native - 特定于平台的依赖导入

android - 项目目录中的 Gradle 依赖项缓存

java - gradle 包含传递运行时依赖作为编译依赖

javascript - webgl drawArray 中间结果

javascript - 如何在angular js中使用嵌套对象将ng-repeat中的数据排序为JSON数据

javascript - 不带导出的 TypeScript 声明的异步加载

javascript - 确定 iframe 是否在屏幕上可见