一个用于管理Web资源的包管理器

19

你知道一种用于网页资源的包管理器吗?

我想要一个可以下载类库如jQuery并将它们插入我的资源管道中的工具。Fanstaticjs.* Python 包很接近,但会选择单个“最新”版本的类库,可能会落后几个版本。

谷歌的js cdn有一些类库的元数据,但主要设计是直接由浏览器下载。

5个回答

16

我找到了这些用于浏览器端JavaScript的包管理器:

大多数这些可以发布为浏览器加载器的AMD格式,并且可以由RequireJS加载。它们还倾向于使用CommonJS包格式(也被npm使用)进行package.json元数据的处理。
我还发现了XStatic,它似乎是fanstatic的不太活跃的版本,并像fanstatic一样将库封装在Python包中。它具有相同的限制(版本往往滞后),但编写包装器包似乎很简单,我可以自己更新。
BPM和fanstatic知道非js资产,并且可以合并或最小化CSS。

4
我想将 Jam 添加到你的 JavaScript 包管理器列表中,作为最新的补充。 - Caolan
1
Yeoman(尚未发布)还承诺以bower的形式提供一些软件包管理(据说是由Twitter人员开发,曾经在npm上短暂可用)。 - Tobu
在我看来,Jam是最好的选择,因为它遵循requirejs兼容配置,并且可以通过类似于PHP包管理器composer的json文件轻松设置。 - acme

14

Bower是Twitter开发的面向Web的软件包管理器。Bower可让您轻松安装图像、CSS和JavaScript等资源,并为您管理依赖关系。

Bower仅限于进行包管理。

Bower需要Nodenpm(某些Bower包可能还需要git)。它也是Yeoman工具集的一部分,帮助开发人员构建现代Web应用程序。


1
Bower很棒。它是客户端的npm(虽然包数量较少)。 - wprl
1
-1 bower不支持提交,开发人员似乎也不想支持它——告别那些不是完美雪花的90%网站 = / 但他们非常愿意支持获取最新的不稳定更改。 - srcspider
1
顺着srcspider的评论来说,在许多情况下,bower相当于执行git clonegit checkout tagname来获取依赖项。如果目标需要更多操作,并且其存储库中没有bower配置文件,那么它将无法工作。如果项目需要构建过程(例如Sinon),它也无法工作。如果你想使用特定的分支或提交而不是标签,它也无法工作。 - DriverDan
4
@GusDeCooL,nodejs有什么问题吗?它对发布的问题作出了很好的回答。 - Gan
@Gan,嗨,抱歉我错了。我测试了Bower。它似乎只是在一些库中使用Node.js,但我们下载的前端脚本仍然可以在没有Node.js的情况下正常工作。我已经点赞你的回答 :) - GusDeCooL

5
如果您正在使用Visual Studio 2010,那么NuGet是最佳选择。 http://nuget.org/

3

RequireJS的作者还创建了一个名为Volo的包/依赖管理器:

使用项目模板创建基于浏览器的前端项目,并通过从GitHub获取它们来添加依赖项。设置完成后,自动化常见任务。

volo是偏爱GitHub作为包存储库的依赖管理器和项目创建工具。

在其核心,volo是一个通用的命令运行程序--您可以为volo创建新命令,并且可以使用其他人创建的命令。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接