npm,bower,gulp,Yeoman和grunt有什么用?
收藏

我是一个后端开发人员,对npm,bower,gulp,grunt和Yeoman感到有些困惑。每当我问某人的目的是什么时,答案往往都归结为依赖管理器-对于他们所有人。当然,我们不需要四个功能相同的工具吗?

有人可以用尽可能少的句子来解释其中每一个的优点吗?如果可能的话,每个工具只有一个,并且使用五岁(具备开发技能)的语言就可以理解?

例如:

  • SVN存储,管理和跟踪对我们源代码的更改

我过去曾使用过Maven,Jenkins,nexus和ant;也许您可以将以上工具与这些工具进行比较?

也可以随时将其他前端工具添加到列表中。

到目前为止,这是我发现的-尽管不确定它是正确的:

  • 前端开发/ JS库的Bower依赖性管理器,使用平面依赖性列表
  • 用于node.js服务器的npm依赖性管理器,可以解析可传递的依赖性/依赖性树
  • grunt运行任务,就像Jenkins一样,但是在命令行上是局部的
  • Yeoman提供了脚手架,即骨架项目
  • gulp与grunt相同,但仅用js编写
  • 用于js应用程序的node.js服务器?
  • git去中心化SCM / VCS,与svn / cvs相对应

我靠近吗? :)

最佳答案

你近了! 欢迎使用JavaScript :)

让我给您一个简短的描述和大多数开发人员花一些时间使用的功能。

bower Focuses on packages that are used in the browser. Each bower install <packagename> points to exactly one file to be included for (more can be downloaded). Due to the success of webpack, browserify and babel it's mostly obsolete as a first class dependency manager.

2018年更新:不赞成使用NPM

npm Historically focuses on NodeJS code but has overthrown bower for browser modules. Don't let anyone fool you: NPM is huge. NPM also loads MANY files into your project and a fresh npm install is always a good reason to brew a new cup of coffee. NPM is easy to use but can break your app when changing environments due to the loose way of referencing versions and the arbitrariness of module publishing. Research Shrink Wrap and npm install --save-exact

2018更新:NPM长大了!关于安全性和可重复性的许多改进已得到实施。

咕unt 促进任务自动化。大嘴大一点的兄弟。 JavaScript社区过去经常在2014年与他闲逛。在某些地方,Grunt已经被认为是遗产,但是仍然可以找到大量真正强大的自动化。对于较大的用例,配置可能是一场噩梦。虽然有一个专门的模块。

2018年更新:咕unt声已经过时了。易于编写的webpack配置已将其杀死。

吞咽 做与咕相同的事情,但速度更快。

npm运行脚本 您可能根本不需要任务执行器。 NodeJS脚本确实很容易编写,因此大多数用例都允许自定义任务自动化工作流。使用npm run-script从package.json文件的上下文中运行脚本

网络包 不要错过webpack。特别是如果您对将JavaScript编写为一致的模块化代码的多种方式感到迷茫。 Webpack将.js文件打包到模块中,而且效果出色。 Webpack具有高度可扩展性,并且还提供了良好的开发环境:webpack-dev-server 与babel结合使用可获得迄今为止最好的JavaScript体验。

约曼 脚手架。对于具有不同背景的团队而言,这非常有价值,因为它为您的项目架构提供了可控的共同基础。甚至有一个脚手架。

    公众号
    关注公众号订阅更多技术干货!