javascript - 创建具有依赖项的 Bower 项目

标签 javascript angularjs node.js gruntjs bower

我正在创建一个 javascript 客户端库,我将通过 Bower 提供该库,并依赖于其他两个库,一个可通过 Bower ( https://github.com/abritinthebay/datejs ) 获取,另一个只能通过 npm ( https://github.com/fent/randexp.js ) 获取。我担心我的图书馆的用户将如何使用它。我的怀疑和恐惧是:

  • 当第二个库只能通过 npm 获取时,如何将其声明为我的库的依赖项?

  • 用户安装我的库后,他/她是否必须了解依赖项并在其 index.html 中手动包含相应的 javascript 文件?我知道 grunt-bower-install 可以解决这个问题,但我担心那些根本不使用 grunt 的人。

  • 如果我放弃所有这些并将这些库的代码包含在我自己的代码中,会不会很糟糕?

  • (奖励轮):我希望我的库可以作为 AngularJS 服务、node.js 模块和“普通”javascript 函数使用。有没有一种方法可以让我仅使用一个存储库来实现这一目标,还是必须创建 3 个单独的项目?

最佳答案

1) 如果您希望 Bower 包管理系统可以使用第二个库,则需要将其包装在 Bower 包中。 npm 是完全不同的东西,您不会直接在两者之间共享。

2) 是的,用户需要确保依赖项在每个页面上以正确的顺序加载。 Bower 只是确保您的依赖项已安装且版本正确。

3)一般来说,我会避免这种情况。它们是具有正交关注点的独立项目。这就是我们首先创建像 Bower 这样的包管理器的原因。

奖金:

4) 是的,您可以使用一个存储库来实现这一目标。每个包管理服务都需要自己的配置文件 - 但是将 bower.jsonpackage.json 都放在存储库的根目录下并没有什么问题。您只需分别使用 npmbower 分别发布到每个系统。

PS。这应该不止 1 个问题。

关于javascript - 创建具有依赖项的 Bower 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27889337/

相关文章:

javascript - 为什么从 MailChimp 的元数据 Api 中得到错误 Invalid_Key?

javascript - 如何返回真正有效的 thenable 对象

java - Servlet 发送 400 错误数据

javascript - 使用 kineticJS 的碰撞检测(getIntersection 函数不起作用)

javascript - AngularJS ng-click 指令不调用函数

javascript - 无法从后端到前端 Angular 选择选项获取文件列表?

sql - Node/Postgres SQL 选择不同的条目,然后将具有相同引用的所有其他条目放入一列中

node.js - 名为 '[DEFAULT]' 的 Firebase 应用程序已经存在,并且 google firebase 引用在服务器上不起作用

javascript - 重复 onload 动画 onclick - Raphael Javascript SVG 动画

javascript - 在 sails js 中将所有 http 请求重定向到 https