客户端 Javascript 有两个包管理器,但它们如何比较?谁能解释一下哪个擅长什么?
2 回答
正如其他人在评论中提到的那样,除了 Jam 和 Bower 之外,这个领域还有一些替代方案。
- 零件
- 安德
- 沃洛
两者都旨在提供一种方法来打包您的资产并为客户管理它们之间的依赖关系。Bower 和 Jam 似乎都在 2012 年首次亮相——分别是 9 月和 5 月。
两者都可以通过 node/npm 获得,如果您只想为您的应用程序解决公共库(如主干、下划线、jquery 等)之间的依赖关系,那么这两种解决方案都可以工作,并允许您使用一些基本选项来控制版本、放置位置它在您的项目中,并检查更新。
至于有什么不同——Bower 的级别比 Jam 低一些,这使得它对更广泛的受众更有用。您可以为不仅仅是 JavaScript 库创建 Bower 组件。Jam 更专注于 AMD 风格的 JavaScript 库。使用 Jam,您可以在 package.json 文件中指定您的依赖项,您已经可以将其与 npm 组件一起使用,而 Bower 按照惯例选择了 component.json。Bower 的限制是它只获取你的依赖项,如果你想使用 Require.js 或 Jam 选择的其他解决方案,你仍然需要一个构建系统,这样你就可以免费获得。Bower 正在获得 Twitter 和其他一些项目(Ender、Yeoman)的支持。
抱歉,如果这是不正确的,但 Jam 的另一个限制是它不允许您创建自己的组件以在私有存储库中分发。这是 Bower 允许您在 .bowerrc 中配置为端点的东西,但我还没有在 Jam 中找到一种方法来做到这一点。也许我搜索得不够好,但似乎至少有一个 fork 用于私人果酱。
其他一些不错的读物:
使用以下一些流行的包管理器的细分,您可以决定要在开发中使用什么。它将事实比较为
- 经理是否使用
package.json
或其他形式的描述符 - 它支持哪些功能(脚手架、编译、拥有中央注册表)
- 速度
- 支持的包形式(仅 js、js 和 css、js html 和 css)
- 支持的模块类型
- 当然还有一些基于个人观点的笔记