我正在尝试进入Grunt,这是我的新手,但我不了解它的用途。
我了解这是一个任务执行者。我了解它可以用于执行诸如bundle,uglify,jshint,minify等之类的操作,并且可以将其转换为脚本任务。
但是我看不出这样做有什么好处。无论如何,几乎所有这些都可以从命令行运行,也就是说,您可以使用简单的shell脚本将它们组合在一起。在我看来,设置grunt + gruntfiles和编写任务比编写shell脚本需要更多的工作,而不是更少。
我对此有何遗漏?
我正在尝试进入Grunt,这是我的新手,但我不了解它的用途。
我了解这是一个任务执行者。我了解它可以用于执行诸如bundle,uglify,jshint,minify等之类的操作,并且可以将其转换为脚本任务。
但是我看不出这样做有什么好处。无论如何,几乎所有这些都可以从命令行运行,也就是说,您可以使用简单的shell脚本将它们组合在一起。在我看来,设置grunt + gruntfiles和编写任务比编写shell脚本需要更多的工作,而不是更少。
我对此有何遗漏?
Answers:
Grunt基本上是在NodeJS之上编写的构建/任务管理器。我将其称为ANT for Java的NodeJS堆栈。以下是一些您想在下面使用grunt的常见方案:
我认为您的Shell脚本无法完成所有这些任务。总而言之,是的,对于那些很少接触javascript的人来说,设置Gruntfile.js是一件很乏味的事情。对于NodeJS来说,这是我的新手。不要花时间为您的前端项目设置合适的Gruntfile.js,您将感谢上帝使您的生活变得更加轻松:)
Advantage vs Shell脚本:
如果您为这些任务中的每一项编写Shell脚本,那么维护并为您的每一项需求进行自定义都会很繁琐。实际上,Gruntfile.js非常简单。您可以使用它进行配置,并指定要执行的任务,每个任务的源和目标。
在Gulp的Yeoman与项目种子生成器的集成是要考虑的另一个主要因素。Yeoman和Gulp带有带有智能默认值的Gruntfile.js'。对于团队中唯一的UI贡献者而言,这对我来说是无价的!
对于从事前端技术工作的人,如果您有不止一个人与您一起工作,那么他们很容易了解Grunt,而关于Grunt的文献已经很好地记录了很多SO的答案,而不是了解您的。外壳脚本。这可能是大型团队的一个因素。
Grunt的众多插件扩展了基本功能。除非您的Shell脚本非常流行并且非常模块化,否则我看不到为其构建插件。这还扩展到在项目中包含新的前端技术。说,如果您想明天在项目中使用Typescript,则您的Shell脚本将需要将其合并并自行解决。使用Grunt,它就像“ npm install”和添加配置一样简单。
即使我同意“接受的答案”中指出的大多数优点,但我仍然必须考虑Keith Cirkel在“为什么我们应该停止使用Grunt&Gulp”中强调的缺点。
因此,Grunt开销抵消了一些优势,至少您应该在是否使用Grunt的最终决定中考虑所有这些因素。