Web的自动化开发---grunt介绍

JavaScript与自动化构建工具Grunt 其中uglify和concat任务用于压缩和合并JavaScript文件,watch任务用于监听JavaScript文件的变化,并在文件发生变化时自动执行uglify和concat任务。Grunt会根据Gruntfile.js中定义的任务自动执行uglify和concat任务,并监听src文件夹中的JavaScript文件的变化。当文件发生变化时,Grunt会自动重新调用uglify和concat任务,生成新的压缩和合并后的文件。该插件用于监听文件的变化,并在文件发生变化时自动执行指定的任务。 阅读详情

简单介绍grunt:

  • Grunt 是一个 JavaScript 自动化任务处理工具,是一个工具框架,有很多插件扩展它的功能。当我们需要做大量的重复工作时,比如:压缩/缩小/单元测试等,Grunt能够自动化(automation)地帮我们完成这些工作。
  • Grunt 基于Node.js,Grunt及它的插件都作为一个包,可以用NPM安装进行管理,所以,NPM生成的package.json项目文件,记录当前项目中用到的 Grunt 插件。
  • Grunt会调用Gruntfile.js文件,解析里面的任务并执行相应操作,需要安装Grunt-cli,也就是命令行的 Grunt,当然 Grunt-cli安装的并不是Grunt 。

安装及配置步骤:

1. 安装nodejs

官网下载 node-v4.2.2.pkg,按照后,同时安装了node 和npm,它将在你的机器上安装 Node.js和 npm (node package manager)。

2. 安装grunt-cli

 “CLI”被翻译为“命令行”。要想使用grunt,首先必须将grunt-cli安装到全局环境中,使用nodejs的“npminstall…”进行安装。打开控制台(注意:windows系统下请使用管理员权限打开),输入:npm install -g grunt-cli,注意,mac os系统、部分linux系统中,在这句话的前面加上“sudo ”指令。安装完成后,这时候要验证一下grunt-cli是否安装完成并生效,你只需要继续在命令行中输入“grunt”命令即可。如果生效,则会出现以下结果:

你不要管这些结果是什么意思,总之出现这些提示,证明你的grunt-cli安装成功了。注意:我们可以在机器上同时安装多个不同版本的Grunt(package.json)。Grunt CLI用来运行配置好Gruntfile.js的Grunt。

3. 创建项目结构 

Grunt是应用于实际项目的,所以我们得有一个简单的测试网站来演示grunt的安装、使用。首先,我在Documents目录下面建了一个“grunt_test”文件夹,里面建了三个空文件夹、两个空文档,名称如下图。(注意 Gruntfile.js 文件的首字母大写!)

执行如下命令:

目录结构如下:

其他的东西先不要管,先把package.json这个文件写一些东西。记住,既然文件后缀名叫“json”,那么文件中的格式肯定是严格的json格式。package.json内容如下所示,否则,无法将grunt及插件信息写入package.json中的“devDependencies”。package.json可以使用npm init命令来创建,过程中需要回答一些配置问题。

4. 安装grunt

接下来我们会有一系列插件的安装,他们的安装过程和grunt一样。但是他们的执行都是基于grunt的,因此才能把grunt叫做一个“构建工具”。Grunt没有具体的作用,但是它能把有具体作用的一个一个插件组合起来,形成一个整体效应。

注意,这里安装grunt不再是全局安装了,需要你在控制台进入到网站或系统的具体目录下。这里我们进入grunt_test目录下。然后输入以下命令,npm install grunt --save-dev,执行成功,则如下图所示,解释的是,“—save-dev”的意思是,在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项,即写入package.json中的“devDependencies”。

现在第一时间打开package.json去看看,那里的“devDependencies”有什么变化。我这里的变化如下图,看看你的是不是和我的一样?

然后,你再看看文档目录中的文件或者文件夹有什么变化?我这里多了一个“node_modules”文件夹,其中有一个“grunt”文件夹,其中有若干文档。这里就是存储grunt源文件的地方。

现在命令行运行grunt,如下图所示,表示grunt已经在这个目录下成功安装。

那么,为何我们在刚才执行grunt时候会有Warning提示呢?根据提示,我们得知的信息是:Task “default” not found ,如何搞定这个问题?——我们继续往下看啊。

注意:区别devDependencies和dependencies,如果你不想用devDependencies,安装的时候使用npm install –production,更多区别可以查看http://stackoverflow.com/questions/18875674/whats-the-difference-between-dependencies-devdependencies-and-peerdependencies

5. 配置gruntfile.js

Gruntfile配置文件包含4部分:

  • 一个包装(wrapper)函数
  • 项目和任务配置(grunt .initConfig)
  • 加载grunt插件及任务
  • 自定义任务

根据需要,首先将gruntfile.js设置为如下格式:

此时,再运行grunt,显示如下所示,表示配置成功,但是我们并没有引入插件,继续往下进行。

6. grunt插件介绍

进入grunt官网的插件列表页面 http://www.gruntjs.net/plugins ,我们能看到grunt到目前位置的所有插件。现在里面有6179个插件,这个数量每天都在增加。

插件分为两类。第一类是grunt团队贡献的插件,这些插件的名字前面都带有“contrib-”前缀,而且在插件列表中有星号标注。第二类是第三方提供的插件,不带有这两个特征。

咱们主要用到以下插件:

  • Contrib-jshint——javascript语法错误检查;
  • Contrib-watch——实时监控文件变化、调用相应的任务重新执行;
  • Contrib-clean——清空文件、文件夹;
  • Contrib-uglify——压缩javascript代码
  • Contrib-copy——复制文件、文件夹
  • Contrib-concat——合并多个文件的代码到一个文件中
  • karma——前端自动化测试工具

7. uglify插件介绍

Uglify插件的功能就是压缩javascript代码。至于javascript代码压缩的必要和意义,这里就不用在赘述了吧?几乎每一个javascript类库或者框架都有一个 **.min.js 压缩版。

要安装一个插件,首先要进入这个插件在grunt官网的说明文档页面。我们在grunt官网插件列表页面,找到“contrib-uglify”点击进入。你要看这里面的说明,然后根据说明进行安装。这里我们只讲重点。

安装uglify插件的方式,和安装grunt是一样的。如下:npm install grunt-contrib-uglify --save-dev

这里又出现了熟悉的“—save-dev”,具体的作用在上文安装grunt时已经说过了,不再赘述。运行这句命令。安装完成之后,你会看到package.json中“devDependencies”节点的变化,以及“node_modules”文件夹里的变化。现在还不能用,还需要在Gruntfile.js做配置。我们既然要使用uglify来压缩javascript代码,当然得创建一个js文件来做实验。我们在现有的“src”文件夹中新建一个文件夹“lib”和“utility”,分别存放“angular.js”和“test.js” 。

测试文件建立好了。我们接下来就要把这两个js文件进行压缩。当然,要压缩谁?往哪里压缩?这些都需要配置,在Gruntfile.js中配置。分为三步:

第一步,在grunt.initConfig方法中配置 uglify的配置参数。如下图:

上图中,对uglify的配置有两项。

  • “options”中规定允许生成的压缩文件带banner,即在生成的压缩文件第一行加一句话说明。注意,其中使用到了pkg获取package.json的内容。
  • “target”中配置了源文件和目标文件,即规定了压缩谁?压缩之后会生成谁?

    这里只是对“options”和“target”的基本应用,还有许多使用方式,可以去官网查阅http://gruntjs.com/configuring-tasks。
    第二步,在grunt.initConfig 方法之后,要让grunt去加载这个插件。只配置,不加载,如何用那?
  • 第三步,在grunt命令执行时,要不要立即执行uglify插件?如果要,就写上,否则不写。

    以上说的这三步已经OK了,接下来我们去试试。在控制台中运行grunt命令,看得到什么结果。控制台将输入如下信息:
         

再去看看,是否生成了2个压缩后的js文件?angular.min.js,如下所示:

 test.min.js,如下所示:

果然。根据package.json中的name和version生成了文件名。而且,压缩后的代码的banner也是符合Gruntfile.js中的配置要求的。

以上就是uglify插件的详细安装、配置说明。Javascript使用uglify压缩,css可使用cssmin插件压缩。安装、配置方法一样的,不再赘述。

8. 使用watch插件(真正实现自动化)

你可能一直有一个疑问,上面讲的插件中,每次执行插件功能,都得执行一遍“grunt”命令,这样的操作非常繁琐,说好的“自动化”呢?别着急,接下来就解决这个问题——通过watch插件解决这个问题。

首先安装watch插件,如果安装不再赘述了。接下来要配置watch插件,配置分为三个步骤,不再详细描述了,只贴图说明。

第一步。配置watch将监控哪些文件的变化,以及这些文件一旦变化,要立即执行哪些插件功能。如下图,watch将监控src文件夹下所有js文件的变化,一旦变化,则立即执行uglify这个插件功能。

第二步,

第三步,

这三步执行完了,即watch插件配置完成。运行grunt命令,控制台提示watch已经开始监听。此时要想停止,按ctrl + c即可。

既然在监听,我们试一试看监听有没有效。我们将 test.js 代码进行修改,结果显示,watch检查到了test.js文件的变化,并重新压缩test.js。

                        

 

VCS和UVM常用编译选项 VCS编译选项 -full64 在64bit模式下编译、仿真,用于64位操作系统 -j8 指定编译器可以并行编译的进程数为8 -timescale=1ns/1ps 指定仿真时间和精度 +libext+.v+.V+.sv+.svh 识别.v、.sv、.svh等多种格式文件 -sverilog 支持system verilog 编译 -f xxx.lisf 指定包含所有设计文件列表的文件名 -top test 设置顶层模块为test。(指包含. 阅读详情

相关推荐

如何利用Arcgis进行地统计学分析(三):空间插值方法选择与优化

本文深入探讨了在Arcgis中进行地统计学分析时,如何根据探索性数据分析(EDA)结果科学选择与优化空间插值方法。文章对比了IDW、RBF、克里金等主流方法的适用场景与核心参数,并通过实战案例详解了从数据诊断到模型调优的完整流程,强调结合半变异函数与趋势分析进行“对症下药”,以提升插值结果的精度与可靠性。

weixin_29281915的博客 120

构建工具-Grunt快速入门

一、什么是项目构建 编译项目中的js、sass、less等文件 合并js、css等资源文件 压缩js、css、html等资源文件 js预发检查等 … 二、构建工具的作用 简单一句话就是:简化项目构建,自动化完成项目构建 三、Grunt简单介绍 中文网址:grunt中文网地址 简介:它是一套前端自动化构建工具,一个基于nodejs的命令行工具,它是一个任务运行器,配合其丰富强大的插件 常用功能: 合并文件(js/css) 压缩文件(js/css) 语法检查(js) less/sass预编译处理 。。。.

Ronychen的博客 895

手把手教你安装 Vivado2019.2(附安装包)

Vivado 2019.2 作为 Xilinx 公司发布的一款设计套件版本,具有多个显著的优点,以下是对其优点的详细归纳

dpwkj的博客 1万+

数据库顶级会议介绍:VLDB、SIGMOD、ICDE

VLDB和另外两大数据库会议SIGMOD、ICDE构成了数据库领域的三个顶级会议。VLDB (Very Large Data Base) 是数据库研究人员,供应商,参与者,应用开发者,以及用户一年一度的主要国际论坛。VLDB国际会议于1975在美国的弗雷明汉马 (Framingham MA) 成立,第一届VLDB就吸引了近100篇文章和150多个参与者,取得了巨大的成功。随着时间的推移,VLDB会

XXL的技术博客 1万+

Arcgis空间分布方向性分析

Arcgis空间分布方向性分析 一、标准差椭圆方法概述 空间分布方向性分析是指区域经济属性在空间分布上的轮廓和主导方向。 标准差椭圆法是分析空间分布方向性特征的经典方法之一,使用标准差椭圆可 从全局的、空间的角度定量解释经济要素空间分布的中心性、展布性、方向性和 空间形态等整体性特征,因其直观性与有效性已得到广泛应用,已成为 Arc GIS 空间统计模块的常规统计工具。SDE 方法生成的结果为一个椭圆,从其生 成算法来看,首先用平均中心来确定椭圆的圆心,然后由平均中心作为起点 对 X 坐标

端木宛白的博客家园 4万+

MS1861宏晶微视频显示与控制器芯片:开发资料全解析与应用指南

本文全面解析了宏晶微MS1861视频显示与控制器芯片的核心功能与开发流程。该芯片作为高性能的“视频信号翻译官”,支持HDMI、LVDS等多种输入与MIPI、LVDS等输出,集成强大的图像处理与OSD叠加功能。文章详细介绍了从资料获取、环境搭建到以HDMI转MIPI为例的实战配置与调试技巧,为工业HMI、广告机等应用的开发者提供了完整的应用指南。

weixin_29198045的博客 337

使用Grunt自动执行重复任务

我最近改使用Grunt.js运行是我的开发工作流程的重要组成部分任务。 咕噜是一个命令行工具,可以让你在一个命令运行的任务堆,所有定制自己的喜好,并根据自己项目的需要。 它帮助我自动执行重复性工作一样CSS预处理,或者缩小代码生产环境。 移动到步兵在快乐Cog中的团队环境后,它帮助我们解决新问题,我们甚至没有预见到使用它,像图像优化,数据库同步,和WordPress主题管理。 仔细阅读,了解如...

167

DRAM 埋入式字线(Buried Wordline)技术深度解析:从二维平面到三维凹槽

埋入式字线(bWL)及其核心的埋入式沟道阵列晶体管(BCAT)架构,无疑是 DRAM 发展史上的一次关键性革命。它在约 40nm 技术节点被行业主流采纳,成功地帮助 DRAM 产业克服了传统平面晶体管的物理缩放极限。力挽狂澜的续命技术:bWL 通过引入三维沟道结构,从根本上解决了由短沟道效应和漏电流失控引发的数据保持危机,为经典的 1T1C(单晶体管 - 单电容)DRAM 单元架构延续了超过十年的生命力。协同优化的基石技术。

m0_37606066的博客 3321

Grunt、webpack个人笔记

主干:package.json Gruntfile package.json用来存储npm模块的依赖项 Gruntfile一般干两件事情: 1. 读取package信息 2. 插件加载、注册任务,运行任务(grunt对外的接口全部写在这里面) Gruntfile可压缩(uglify),合并(concat),监测(watch),等 grunt.initConfig设置几个任务就下载对应

小白努力走 4302

3D视觉革命丨多相机协同拼接技术如何重塑工业检测边界

本文深入探讨了多相机协同拼接技术如何突破单台3D相机的物理局限,实现工业检测从“点面”到“立体”的无死角覆盖。通过拆解系统标定、同步融合等核心技术,并结合锂电池、长轴零件等实战案例,揭示了该技术如何以虚拟“超级视觉传感器”重塑检测边界,提升精度与效率。

weixin_29056865的博客 384

通过轻量级图像增强Transformer (IAT) 提升YOLOv8在低光环境下的检测性能

随着深度学习和计算机视觉的快速发展,目标检测模型在各个领域中的应用不断扩展,特别是在低照度环境下的视觉任务。YOLOv8作为当前最先进的目标检测模型之一,在高亮度和良好照明条件下表现出色,但在低照度环境下的性能存在一定的不足。为了解决这一问题,我们提出了一种轻量级的低照度图像增强网络(IAT)来改进YOLOv8的暗光检测能力。本篇文章将深入探讨这一创新改进,并附带代码实现,帮助大家更好地理解这一技术的应用和效果。

博客 1214

grunt 使用教程及步骤

grunt 是一套前端自动化构建工具,一个基于 NodeJs 的命令行工具,它是一个任务运行器,配合器丰富强大的插件

weixin_44732078的博客 3221

AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 8249

用grunt搭建自动化的web前端开发环境(一)介绍 【转载自博客园王福朋】

jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真的”重复,表 示重点)。至于grunt的作用,这里不详细说了,总之你如果做web前端开发,你一定要用grunt。还有一

datiango的博客 321

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Ubuntu14.04 Grunt 搭建自动化的web前端开发环境

Ubuntu14.04 Grunt 搭建自动化的web前端开发环境 一、写在前面 这篇文章主要介绍一下Grunt 搭建自动化的Web前端开发环境。 如果转载,请保留作者信息。 邮箱地址:jpzhang.ht@gmail.com 二、grunt介绍 Grunt 是一个基于任务的 JavaScript 项目命令行构建工具。类似Java业界的Ant工具一样。实际上,你可以把grunt理解

JP.Zhang 3575

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

web前端开发环境搭建(grunt)

web前端开发环境搭建(grunt) 本文参考:用grunt搭建自动化的web前端开发环境-完整教程 以上推荐文章已经很详细的讲解了node.js  grunt的安装,今天重点写一下有关web前端开发插件的安装。         在package.json中可定义一些参数如name、version、author等。在Gruntfile.js中通过grunt.f

Alvyang的专栏 922

grunt 执行任务_如何使用Grunt自动执行工作流程[教程]

我大力倡导自动化,因为它使生活变得简单得多。 当您有一台计算机为您做事时,为什么还要花时间在那些琐碎而单调的任务上,这些任务会耗尽您的生命力呢? 对于Web开发尤其如此。 许多开发任务可能很繁琐。 在开发过程中,您可能希望编译代码,而在推送开发版本时,您可能会串联并缩小文件,仅删除开发资源,等等。 即使是比较简单的文件,例如删除一堆文件或重命名文件夹, 也可能会占用我们很大的时间。 在...

cune1359的博客 574

基于grunt的web端开发环境搭建(简)

目标与实现: 1、安装node.js环境; 2、安装grunt环境与对应插件; 3、利用grunt进行端自动化构建(检查、合并、压缩等); 工具与软件: 1、node-v6.9.1-x64; 2、webstorm; 步骤: 一、node安装 到官网下载node-v6.9.1-x64或者更高版本,用其默认步骤安装。安装完毕,打开dos窗口,检验如下代表安装成功:

尼乐 2136

用grunt搭建自动化的web前端开发环境-完整教程 .jshintrc文件里的内容有问题

转载自:http://blog.youkuaiyun.com/wangfupeng1988/article/details/46418203/   【前端福利】用grunt搭建自动化的web前端开发环境-完整教程 标签: web前端web前端开发自动化grunt 2015-06-08 21:37 46700人阅读 评论(66) 收藏 举报 版权声明:本文为博主

mozuncangtianbaxue的博客 754

用grunt搭建自动化的web前端开发环境

jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真的”重复,表 示重点)。至于grunt的作用,这里不详细说了,总之你如果做web前端开发,你一定要用grunt。还有一点,

何以飘零去_何以少团栾 714

grunt--自动化打包工具使用

用grunt搭建自动化的web前端开发环境-完整教程 jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真的”重复,表 示重点)。至于grunt的作用,这里不详细说了,总...

dengqulun3433的博客 414

【前端福利】用grunt搭建自动化的web前端开发环境-完整教程

     jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用! 1. 前言   各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真的”重复,表示重点)。至于grunt的作用,这里不详细说了,总之你如果做web前端开发,你一定要用gr...

weixin_30319153的博客 240

用grunt搭建自动化的web前端开发环境-完整教程

jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用! 1. 前言   各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真的”重复,表 示重点)。至于grunt的作用,这里不详细说了,总之你如果做web前端开发,你一定要用grunt。还有一点,它完...

weixin_34018169的博客 66

Grunt搭建自动化web前端开发环境--完整流程

Grunt搭建自动化web前端开发环境-完整流程 jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用! 1、 前言   各位web前端开发人员,如果你现在还不知道grunt或者听说过、但是不会熟练使用grunt,那你就真的真的真的out了(三个“真的”重复,表示重点)。至于grunt的作用,这里不详细说了,总之...

axp30398的博客 137

用grunt搭建自动化的web前端开发环境实战教程(详细步骤)

用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学、不用!前端自动化,这样的一个名词听起来非常的有吸引力,向往力。当今时代,前端工程师需要维护的代码变得及为庞大和复杂,代码维护、打包、发布等流程也变得极为繁琐,同时浪费的时间和精力也越来越多,当然人为的错误也随着流程的...

weixin_34194551的博客 190

【Grunt】前端自动化构建工具

官网:Grunt 中文网:Grunt待完成

李留白 418

Grunt Part 1

Grunt Part 1 Objectives and Outcomes In this exercise, you will learn to use Grunt, the task runner....

whiteGay的博客 126
上一篇: mac版mysql 安装及使用
下一篇: js事件介绍
黄玮鹏
博客等级 码龄17年 262粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值