我是一个后端开发人员,对npm,bower,gulp,grunt和Yeoman感到有些困惑。每当我问某人的目的是什么时,答案往往都归结为依赖管理器-对于他们所有人。当然,我们不需要四个功能相同的工具吗?
有人可以用尽可能少的句子来解释每一个对有什么好处吗-如果可能的话,每个工具只有一个,并使用五岁(具有开发技能)的语言才能理解?
例如:
我过去曾经使用过Maven,Jenkins,nexus和ant;也许您可以将上面的工具与这些工具进行比较?
也可以随时将其他前端工具添加到列表中。
到目前为止,这是我发现的-尽管不确定它是正确的:
我靠近吗? :)
最佳答案
你近了!
欢迎使用JavaScript :)
让我给您一个简短的描述和大多数开发人员花一些时间使用的功能。
凉亭
重点介绍浏览器中使用的软件包。每个bower install <packagename>
都恰好指向一个要包含的文件(可以下载更多文件)。由于webpack,browserify和babel的成功,它几乎已不再是一流的依赖管理器。
2018年更新:赞成以NPM弃用鲍尔
npm
过去一直专注于NodeJS代码,但已经覆盖了浏览器模块的功能。不要让任何人愚弄你:NPM很大。 NPM还将许多文件加载到您的项目中,新安装的npm始终是冲泡一杯新咖啡的好理由。 NPM易于使用,但由于版本引用方式宽松以及模块发布的任意性,更改环境时可能会破坏您的应用程序。研究Shrink Wrap和npm install --save-exact
2018更新:NPM长大了!关于安全性和可重复性的许多改进已得到实现。
咕unt
促进任务自动化。大嘴大一点的兄弟。 JavaScript社区过去在2014年经常与他闲逛。在某些地方,Grunt已经被认为是遗留物,但是仍然可以找到大量真正强大的自动化。对于较大的用例,配置可能是一场噩梦。 There is a grunt module for that though.
2018年更新:咕unt声已经过时了。易于编写的webpack配置已将其杀死。
gulp
做与咕一样的事情,但速度更快。
npm运行脚本
您可能根本不需要任务执行器。 NodeJS脚本真的很容易编写,因此大多数用例都允许自定义任务自动化工作流。使用npm run-script从package.json文件的上下文中运行脚本
Webpack
不要错过webpack。特别是如果您对将JavaScript编写为一致的模块化代码的多种方式感到迷茫。 Webpack将.js文件打包到模块中,而且效果出色。 Webpack具有高度可扩展性,并且还提供了良好的开发环境:webpack-dev-server
与babel结合使用可获得迄今为止最好的JavaScript体验。
Yeoman
脚手架。对于具有不同背景的团队而言,这非常有值(value),因为它为您的项目架构提供了可控的共同基础。甚至还有一个scaffolding for scaffolds。