你如何比较npm
, bower
和volo
?
所有这三个可以用来安装依赖的JavaScript的UI项目。 我明白npm
是更具体的节点。
所以,当使用什么?
npm
仍然有效遥远,但bower
和volo
似乎正好解决同样的问题,虽然我不是能画之间的线路npm
和bower-volo
。
你如何比较npm
, bower
和volo
?
所有这三个可以用来安装依赖的JavaScript的UI项目。 我明白npm
是更具体的节点。
所以,当使用什么?
npm
仍然有效遥远,但bower
和volo
似乎正好解决同样的问题,虽然我不是能画之间的线路npm
和bower-volo
。
最能描述NPM和亭子之间的差A描述是:NPM管理的JavaScript模块调用包和鲍尔管理前端组件(即CSS,HTML和JavaScript)调用的组件。 故宫也可用于安装亭子。 下面是一个在NPM和亭子广阔的文章它进入大量的细节(不包括VOLO)。
它仍然是前端开发人员中非常流行,尽管它有非常少的特点。 每个前端包在使用它。 还有一个合并凉亭进入故宫的倡议 。
亭子是针对客户端的最优化,并且仅支持平坦依赖性树,即每个库必须只能使用一次 (因为它是昂贵的船舶不同版本的相同的库到客户端的),以及依赖关系的约束必须由用户来解决。
你可以期望找到什么是前端的凉亭注册表(相关bower search <some keyword>
) -在我看来,这是亭子相对于其他软件包管理器最大的优势。
我还有好几年没用过它超过5分钟。 不知道这件事, 但我可以看到它确实包含了一些构建工具,这是非常熟悉的咕噜用户。
是的,NPM代表节点包管理器。 但现在你可以使用它的一切; 人们不再仅仅npm install
荷兰国际集团的事情,并希望他们只在节点的环境中工作。 例如,有许多对Twitter的引导NPM包 。
NPM是服务器端使用进行了优化,以嵌套的依赖关系树。 每个依赖关系都可以有自己的依赖,可以有自己的,等等。 这就消除依赖版本冲突,每一个依赖可以用自己的例如,下划线的版本。 然而,即将到来的NPM版本3将压平的依赖关系树 :
随着新公共管理@ 3,您node_modules目录会有很多平坦。 您所有的依赖和大部分的subdependencies(和(分)+依赖性)都将坐在顶层彼此相邻。 只有当有冲突将模块在更深层次进行安装。 这应该使事情更容易为Windows用户。
一些优点我使用NPM看到:
NPM是JavaScript的包管理器。
截至2013年2月,我的意见是以下。 请不要考虑它了。
这是更好地与它坚持,当你有一个节点项目,有可用于浏览器也很少有项目...
鲍尔是流行音乐的人现在。 他们有很多的项目,他们的引擎盖下,该项目的维护者想使他们能跟上最新的凉亭注册表...
这是一个耻辱,他有时有点马车。
我还没有试过VOLO以来使超过5分钟,但是从我看到它看起来比凉亭更加灵活。
对于VOLO负的一点是,他们的项目是非常过时。
他们似乎是解决相同的问题,但针对不同的环境/世界。 新公共管理和的NodeJS VOLO,亭子的浏览器。
事实是,你可以使用NPM还管理JavaScript和CSS的浏览器。 没有什么阻止你这样做。 在使用这个意义上说NPM感觉更自然的我比管理两个不同的工具,为了同样的目的。
看来,凉亭有更多的封装,至少较受欢迎。 但很快jQuery的也将在NPM可直接与可能所有其他图书馆将遵循同样的趋势。
在我看来,因为有一样的工具browserify和webmake在那里,在浏览器的帮助使用节点模块,也不再为凉亭或VOLO的实际需要,除非他们提供的东西给你(一个特定的模块只存在于他们的登记)。
无论瓦罗和鲍尔也很好,但是从我的角度来看,如果你已经在使用NPM,它可能会更好地坚持下去。
请注意, 您可以使用NPM来管理你的客户的依赖关系,即使没有使用browserify或webmake。 在大部分项目我已经被工作,被安装在NPM模块后,我运行一个脚本来将它们部署到我的客户端应用程序使用它们的位置。 有时候我用咕噜来连接其它的js文件的文件,有时我直接从我的web应用程序的模板文件中引用它。 在任何情况下,这是个人喜好。 其他人可以找到鲍尔或瓦罗,因为他们适应他们的工作流程更自然更容易使用。
鲍尔公司在NPM大优势是,它依赖管理强制使用组件的单个版本(而故宫的工作方式具有不同的副本/版本的不同模块的subdependencies)。 这是一个非常好的事情 ,因为它可以防止您的客户端的JavaScript变得臃肿通过需要包括在不同版本的组件的多个副本。 包括模块的多个副本是中央对NPM的依赖管理是如何工作的,因此NPM是完全不适合于客户端软件包管理。
上述情况的一个后果是,亭子的维护者和消费者都更加注意保持他们的依赖版本号,以避免冲突的,但它是值得付出的代价。 而且我发现NPM模块已在各自主要,次要和修补程序版本的发行往往草率所以NPM依赖管理是不完全称心如意的要么。
我知道这是不是问题的范围,但还有另一种选择也。 果酱JS - http://jamjs.org/一件事有趣的是,它在果酱咕噜功能:
jam compile output.js
有人应该让另一个包管理器并将其命名为:yapm :)