我试图进入Grunt,我是新手,但我不明白它的实用性。
我知道这是一个任务运行者。我知道它可以用来做一些事情,比如bundle,uglify,jshint,minify等等,任何可以变成脚本任务的东西。
但我不知道这会带来什么好处。几乎所有这些都可以从命令行运行,也就是说你可以使用简单的shell脚本组合它们。在我看来,设置grunt + gruntfiles和编写任务比编写shell脚本更多更多工作,而不是更少。
我对此缺少什么?
答案 0 :(得分:130)
Grunt基本上是一个构建在NodeJS之上的构建/任务管理器。我称之为NodeJS堆栈相当于ANT for Java。以下是您希望在下面使用grunt的一些常见场景:
我不认为你的shell脚本可以做所有这些。总而言之,是的,设置一个Gruntfile.js对于那些几乎没有接触过javascript / / nodeJS新手的人来说是乏味的,我和学习者一样经历了同样的痛苦,但Grunt是一个了不起的软件。请花时间为您的前端项目设置合适的Gruntfile.js,并且感谢上帝让您的生活变得更轻松:)
Advantage vs shell脚本:
如果您为每个任务编写shell脚本,那么维护并为每个需求进行自定义都很繁琐。 Gruntfile.js实际上非常简单。有一个你用它来初始化它的配置,指定你想要执行的任务,每个任务的源和目标。
与Yeoman,Gulp项目种子生成器的集成是另一个需要考虑的主要因素。 Yeoman和Gulp带有Gruntfile.js'智能默认值。对于他的团队中唯一的UI贡献者,这对我来说是无价的! p>
对于正在从事前端技术工作的人来说,如果你有多个人在和你合作,那么他们就很容易认识Grunt,这已经有很多关于SO的答案,而不是了解你的shell脚本。这可能是大型团队的一个因素。
Grunt的众多插件扩展了基本功能。除非你的shell脚本非常流行,并且非常模块化,否则我不会看到为它构建插件。这也扩展到在项目中包含新的前端技术。比如说,如果你想明天在你的项目中使用typescript,那么你的shell脚本需要自己加入这个和帐户。使用Grunt,它就像" npm install"一样简单。并添加配置。
答案 1 :(得分:8)
即使我同意Accepted Answer中指出的大多数优点,我仍然需要考虑Keith Cirkel在Why we should stop using Grunt & Gulp中强调的缺点
因此,一些优势是Grunt管理费用的反驳,至少你应该考虑使用Grunt的最终决定。