小编典典

Bower和npm有什么区别?

javascript

bower和之间的根本区别是npm什么?只需要简单明了的东西。我已经看到一些同事在他们的项目中使用bowernpm互换使用。


阅读 359

收藏
2020-05-01

共1个答案

小编典典

所有程序包管理器都有许多缺点。您只需要选择可以与之共存的地方即可。

History

npm开始管理node.js模块(这就是node_modules默认情况下会放入软件包的原因),但是当与Browserify或webpack结合使用时,它也适用于前端。

Bower是专门为前端创建的,因此考虑到了优化。

Size of repo

npm比bower大得多,包括通用JavaScript(例如country-data用于国家/地区信息或sorts用于在前端或后端使用的排序功能)的Bower得多。

Bower的包装数量要少得多。

Handling of styles etc

凉亭包括样式等。

npm专注于JavaScript。样式为单独下载或类似的东西需要npm-sasssass-npm

Dependency handling

最大的区别是npm确实嵌套了依赖项(但默认情况下是平坦的),而Bower需要平坦的依赖项树 (这给用户带来了依赖项解决的负担)

嵌套的依赖关系树意味着您的依赖关系可以具有自己的依赖关系,也可以具有自己的依此类推。这允许两个模块要求具有相同依赖性的不同版本,并且仍然可以工作。请注意,从npmv3开始,默认情况下,依赖项树将保持平坦状态(节省空间),并且仅在需要的地方嵌套,例如,如果两个依赖项需要它们自己的Underscore版本。

一些项目同时使用这两种方法,即它们将Bower用于前端软件包,将npm用于开发人员工具,例如Yeoman,Grunt,Gulp,JSHint,CoffeeScript等。


2020-05-01