所有包管理器都有许多缺点.你只需要 Select 你能接受的.
npm开始管理 node .js模块(这就是为什么包在默认情况下会进入node_modules
),但当与Browserify或webpack结合使用时,它也适用于前端.
Bower是专为前端设计的,并考虑到这一点进行了优化.
npm比Bower大得多,包括通用JavaScript(比如country-data
表示国家信息,sorts
表示前端或后端可用的排序功能).
鲍尔的包裹数量要少得多.
鲍尔包括风格等.
npm专注于JavaScript.样式可以单独下载,也可以是npm-sass
或sass-npm
之类的要求.
最大的区别是npm有嵌套的依赖关系(但默认情况下是扁平的),而Bower需要扁平的依赖关系树(puts the burden of dependency resolution on the user).
嵌套的依赖关系树意味着依赖关系可以有自己的依赖关系,依赖关系可以有自己的依赖关系,依此类推.这允许两个模块需要相同依赖项的不同版本,并且仍然可以工作.注意:自npm v3以来,依赖关系树在默认情况下是平坦的(节省空间),仅在需要时嵌套,例如,如果两个依赖关系需要自己的下划线版本.
有些项目两者都使用:他们将Bower用于前端包,将NPM用于开发工具,如Yeoman、Grunt、Gulp、JSHint、CoffeeScript等.