bower和之间的根本区别是npm什么?只需要简单明了的东西。我已经看到一些同事在他们的项目中使用bower和npm互换使用。
bower
npm
所有程序包管理器都有许多缺点。您只需要选择可以与之共存的地方即可。
npm开始管理node.js模块(这就是node_modules默认情况下会放入软件包的原因),但是当与Browserify或webpack结合使用时,它也适用于前端。
node_modules
Bower是专门为前端创建的,因此考虑到了优化。
npm比bower大得多,包括通用JavaScript(例如country-data用于国家/地区信息或sorts用于在前端或后端使用的排序功能)的Bower得多。
country-data
sorts
Bower的包装数量要少得多。
凉亭包括样式等。
npm专注于JavaScript。样式为单独下载或类似的东西需要npm-sass或sass-npm。
npm-sass
sass-npm
最大的区别是npm确实嵌套了依赖项(但默认情况下是平坦的),而Bower需要平坦的依赖项树 (这给用户带来了依赖项解决的负担) 。
嵌套的依赖关系树意味着您的依赖关系可以具有自己的依赖关系,也可以具有自己的依此类推。这允许两个模块要求具有相同依赖性的不同版本,并且仍然可以工作。请注意,从npmv3开始,默认情况下,依赖项树将保持平坦状态(节省空间),并且仅在需要的地方嵌套,例如,如果两个依赖项需要它们自己的Underscore版本。
一些项目同时使用这两种方法,即它们将Bower用于前端软件包,将npm用于开发人员工具,例如Yeoman,Grunt,Gulp,JSHint,CoffeeScript等。