Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 咕噜叫什么?_Javascript_Automation_Gruntjs - Fatal编程技术网

Javascript 咕噜叫什么?

Javascript 咕噜叫什么?,javascript,automation,gruntjs,Javascript,Automation,Gruntjs,我试图进入Grunt,这是我第一次接触它,但我不了解它的实用性 我知道这是一个任务管理者。我知道它可以用来做一些事情,比如bundle、uglify、jshint、minify等等,任何可以变成脚本任务的事情 但我看不出这有什么好处。几乎所有这些都可以从命令行运行,也就是说,您可以使用一个简单的shell脚本将它们组合起来。在我看来,设置grunt+gruntfiles和编写任务比编写shell脚本要多,而不是少 关于这一点,我遗漏了什么?Grunt基本上是一个在NodeJ之上编写的构建/任务管

我试图进入Grunt,这是我第一次接触它,但我不了解它的实用性

我知道这是一个任务管理者。我知道它可以用来做一些事情,比如bundle、uglify、jshint、minify等等,任何可以变成脚本任务的事情

但我看不出这有什么好处。几乎所有这些都可以从命令行运行,也就是说,您可以使用一个简单的shell脚本将它们组合起来。在我看来,设置grunt+gruntfiles和编写任务比编写shell脚本要多,而不是少


关于这一点,我遗漏了什么?

Grunt基本上是一个在NodeJ之上编写的构建/任务管理器。我将其称为NodeJS堆栈,相当于ANT for Java。以下是您希望在以下情况下使用grunt的一些常见场景:

  • 您有一个包含javascript文件的项目,需要缩小,并且通常单独生成前端构建(如果您使用JAVA作为后端)。(咕噜咕噜咕噜咕噜咕噜)
  • 在开发过程中,当您在计算机上保存代码时,您希望浏览器自动重新加载页面(可能看起来很小,但请相信我,这为我节省了很多时间)。(实时重新加载
  • 当开发人员在机器上保存代码时,他希望显示JS错误/一般最佳实践违规的综合列表。(grunt contrib jshint
  • 您有一个包含SASS/LESS文件的项目,这些文件需要在开发过程中在开发人员机器上编译为CSS文件,例如,每当他保存SASS文件时,您希望它自动编译为CSS文件,以便包含在页面中。(咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜)
  • 你有一个在UI上工作的前端开发人员团队,还有一个在后端工作的后端开发人员团队,你希望前端开发人员使用后端RESTAPI,而不必每次在自己的机器上编译和部署代码。如果您想知道,这在典型的web服务器设置中是不可能的,因为浏览器不允许XHR跨域。Grunt可以为您设置一个代理,将Grunt connect服务器中您自己系统上的XHR请求重定向到另一个系统!(grunt contrib代理,grunt contrib connect
  • 我认为您的shell脚本不能完成所有这些。总而言之,是的,对于一个对javascript几乎没有接触过的人来说,设置GrunFile.js是一件乏味的事情,而对于nodeJS来说,这是一件新鲜事。作为一名学习者,我也经历过同样的痛苦,但Grunt是一款了不起的软件。一定要花时间为前端项目设置一个合适的Gruntfile.js,你会感谢上帝让你的生活变得更轻松:)

    与shell脚本相比的优势:

  • 如果您为这些任务中的每一项都编写shell脚本,那么维护并根据您的每一项需求进行自定义是非常繁琐的。GrunFile.js实际上相当简单。有一个用于初始化的配置,指定要执行的任务、每个任务的源和目标

  • 在约曼河流域,与工程种子发生器的集成是另一个需要考虑的主要因素。Yeoman和Gulp附带了Grunfile.js,具有智能默认值。对于团队中唯一的UI贡献者来说,这对我来说是无价的

  • 对于从事前端技术工作的人来说,如果你有不止一个人与你一起工作,那么对他们来说,了解Grunt比了解shell脚本要容易得多,Grunt已经有很多答案了。这可能是大型团队的一个因素

  • Grunt的众多插件扩展了基本功能。除非您的shell脚本非常流行,并且非常模块化,否则我看不到为它构建插件。这也扩展到在项目中包含新的前端技术。比如说,如果你想在明天的项目中使用typescript,你的shell脚本将需要把它结合起来,并用你自己的努力来解释它。使用Grunt,只需“npm安装”并添加配置即可


  • 尽管我同意大多数的优点,但我仍然要考虑Keith Cirkel在

    中所强调的缺点。
    <> P>这样,一些优点可以用咕噜开销来反驳,至少你应该在使用咕噜的最后决定中考虑到这一点。运行javascript优化器、css lint等的任务。编写自定义shell脚本并不理想。相比之下,设置grunt相当容易。我对grunt非常陌生。。。你能给我一些关于如何用grunt为angular项目构建Jenkins的建议吗