bower和之间的根本区别是什么npm?只想要简单明了的东西。我见过我的一些同事在他们的项目中使用bower和npm互换。
bower
npm
所有包管理器都有很多缺点。你只需要选择你可以忍受的。
npm开始管理 node.js 模块(这就是默认情况下包进入的原因),但是当与Browserify或webpacknode_modules结合使用时,它也适用于前端。
node_modules
Bower是专门为前端创建的,并为此进行了优化。
npm 比 bower 大得多,包括通用 JavaScript(例如country-data用于国家信息或sorts可用于前端或后端的排序功能)。
country-data
sorts
Bower 的包裹数量要少得多。
Bower 包括样式等。
npm 专注于 JavaScript。样式可以单独下载,也可以通过类似npm-sass或sass-npm.
npm-sass
sass-npm
最大的不同是 npm 做了嵌套依赖(但默认是扁平的),而 Bower 需要扁平的依赖树(将依赖解析的负担放在用户身上)。
嵌套的依赖树意味着你的依赖可以有自己的依赖,也可以有自己的依赖,依此类推。这允许两个模块需要相同依赖项的不同版本并且仍然可以工作。注意,从 npm v3 开始,依赖树默认是扁平的(节省空间)并且只在需要的地方嵌套,例如,如果两个依赖项需要它们自己的 Underscore 版本。
一些项目同时使用两者:他们使用 Bower 作为前端包,使用 npm 作为开发工具,如 Yeoman、Grunt、Gulp、JSHint、CoffeeScript 等。