javascript - Jam vs Bower,有什么区别?

标签 javascript node.js client-side package-managers

有两个用于客户端 Javascript 的包管理器,但它们如何比较?谁能解释一下哪个擅长什么?

最佳答案

正如其他人在评论中提到的那样,除了 Jam 和 Bower 之外,这个领域还有其他一些选择。

  • 组件
  • 安德
  • 沃洛

两者都旨在提供一种方法来打包您的 Assets 并为客户管理它们之间的依赖关系。 Bower 和 Jam 似乎都在 2012 年首次亮相——分别是 9 月和 5 月。

两者都可以通过 node/npm 获得,如果您只想为您的应用程序解决公共(public)库(如 Backbone 、下划线、jquery 等)之间的依赖关系,那么这两种解决方案都可以工作,并允许您使用一些基本选项来控制版本,将其放入项目的哪个位置,并检查更新。

至于有什么不同——Bower 的级别比 Jam 低一些,这使得它对更广泛的受众更有用。您可以为不仅仅是 JavaScript 库创建 Bower 组件。 Jam 更专注于 AMD 风格的 JavaScript 库。使用 Jam,您可以在 package.json 文件中指定您的依赖项,您已经可以将其与 npm 组件一起使用,而 Bower 按照惯例选择了 component.json。 Bower 的限制是它只获取你的依赖项,如果你想使用 Require.js 或 Jam 选择的其他解决方案,你仍然需要一个构建系统,这样你就可以免费获得。 Bower 正在获得 Twitter 和其他一些项目(Ender、Yeoman)的支持。

抱歉,如果这是不正确的,但 Jam 的另一个限制是它不允许您创建自己的组件以在私有(private)存储库中分发。这是 Bower 允许您在 .bowerrc 中配置为端点的东西,但我还没有在 Jam 中找到一种方法来做到这一点。也许我搜索得不够好,但似乎至少有一个 fork 用于 private-jam。

其他一些不错的读物:

关于javascript - Jam vs Bower,有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15603095/

相关文章:

javascript - Flask Jinja2 语句与 JavaScript 用例

javascript - 在 router.use 中定义参数时如何获取参数?

Javascript 将字符串常量定义为速记属性

javascript - 在 Node js 中创建文本文件时出现错误 : ENOENT: no such file or directory, 打开错误

javascript - 是否可以创建纯客户端 GWT 应用程序?

javascript - jquery 在动画的开始和结束时做一些事情

android - 无法使用适用于 Android 的 Google Cloud Messaging(不是帮助程序库)接收消息

javascript - Scrapy 返回 xpath 的空列表

angularjs - NodeJS : Where to store JWTs on the client side? sessionStorage、localStorage 还是 cookies?

node.js - TypeError:无法解构 `db` 或 'undefined' 的属性 'null'