grunt简单教程

Grunt简单教程

1.grunt简介

Grunt是一个基于任务的命令行工具,依赖于node.js环境。

它能帮你合并js文件,压缩js文件,验证js,编译less,合并css,还可以配置自动任务,单元测试等等,grunt有非常多的插件,可以满足你的大部分需求。

2.怎么安装

先介绍一些东西:

npm是node.js的包管理器通过npm可以下载安装nodejs的模块包

cnpm是淘宝 npm镜像,用此代替官方版本(只读),同步频率目前为10分钟一次。

安装cnpm方法

npm install -g cnpm --registry=https://registry.npm.taobao.org

常用命令:

node -v 版本

npm -v 版本

npm list:查看当前目录下已安装的node包

npm help:查看帮助命令

npm install <name> -g

将包安装到全局环境中,在命令行能直接使用

npm update moduleName:更新node模块

npm uninstall moudleName:卸载node模块

npm root:查看当前包的安装路径

npm root -g:查看全局的包的安装路径

如果你之前安装过老的0.3版本,请先卸载:

npm uninstall -g grunt

安装Grunt命令行(CLI):

npm install -g grunt-cli

注1:-g代表全局安装,Grunt有二个版本:服务器端版本(grunt)和客户端版本(grunt-cli)。

注2:安装grunt-cli并不等于安装了grunt!grunt CLI的任务很简单:调用与Gruntfile在同一目录中的grunt。这样带来的好处是,允许你在同一个系统上同时安装多个版本的grunt。而grunt使用模块结构,除了安装命令行界面以外,还要根据需要安装相应的模块。这些模块应该采用局部安装,因为不同项目可能需要同一个模块的不同版本。

package.json: 此文件被npm用于存储项目的元数据,以便将此项目发布为npm模块。

{
	"name": "grunt",

	"version": "0.1.0",

	"devDependencies": {

		"grunt": "~0.4.0",

		"grunt-contrib-jshint": "~0.1.1",
		"grunt-contrib-nodeunit": "~0.1.2",
		"grunt-contrib-watch": "~0.2.0",
		"grunt-contrib-concat": "~0.1.1",
		"grunt-contrib-uglify": "~0.1.0",
		"grunt-contrib-cssmin": "~0.9.0",
		"difflet": "~0.2.3"

	}
}

devDependencies里面的参数,指定了项目依赖的Grunt和Grunt插件版本。其中"~0.1.1"代表安装该插件的某个特定版本,如果只需安装最新版本,可以改成"*"。

创建新的Grunt项目

cd到项目文件夹

方式一:建好package.json文件然后执行:

npm install

这时你会发现项目文件夹中多了个node_modules文件夹,其里面就是对应的Grunt和Grunt插件。

方式二:自动安装

安装最新版的Grunt:

npm install grunt --save-dev

接着安装我们所需要的插件:

npm install grunt-contrib-cssmin --save-dev

注:其中--save-dev,表示将它作为你的项目依赖添加到package.json文件中devDependencies内。如果你要安装指定版本的Grunt或者Grunt插件,只需要运行npm install [email protected] --save-dev命令,其中VERSION就是你所需要的版本(指定版本号即可)。

配置任务

Gruntfile: 此文件被命名为 Gruntfile.js 或 Gruntfile.coffee,用来配置或定义任务(task)并加载Grunt插件

module.exports = function(grunt){

	grunt.initConfig({
		pkg: grunt.file.readJSON('package.json'),
		concat: {
			options: {
			},
			dist: {
				src: ['src/**/*.js'],//src文件夹下包括子文件夹下的所有文件
				dest: 'dist/built.js'//合并文件在dist下名为built.js的文件
			}
		},
		uglify: {
			//文件头部输出信息
			options: {
				banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd HH:mm:ss") %> */\n'
			},
			//具体任务配置
			build: {
				src: 'dist/built.js',
				dest: 'build/built.min.js'
			}
		},
		cssmin: {
			build: {
				src: ["src/css/css1.css", "src/css/css2.css"],
				dest:"dist/css/cssOut.css"
			}
		}
	});
	// 加载提供”uglify”任务的插件
	grunt.loadNpmTasks('grunt-contrib-uglify');
	grunt.loadNpmTasks('grunt-contrib-concat');
	grunt.loadNpmTasks('grunt-contrib-cssmin');
	// 默认任务
	grunt.registerTask('default', ['concat','uglify','mincss']);
}

执行任务

执行配置中所有的任务:

grunt

执行某个特定的任务:

grunt concat

常用插件介绍:

grunt-contrib-uglify  压缩js文件

grunt-contrib-concat 合并任意文件

grunt-contrib-jshint 于javascript代码检查(并会给出建议),发布js代码前执行jshint任务,可以避免出现一些低级语法问题

grunt-contrib-mincss  用于css压缩

grunt-contrib-watch 它能监测文件的修改,触发指定任务

grunt-contrib-less less编译

等等

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 04:45:07

grunt简单教程的相关文章

?Grunt系列教程之(一)

?Grunt系列教程之一 ?grunt是一个强大的自动化构建工具,它能自动的执行你自定义的任务,帮助你编译.压缩.单元测试等.它可以极大的减轻作为程序员的工作量.一切无聊枯燥且重复的工作就交给grunt来完成吧! ?grunt中有非常多的插件,有官方的可以直接使用,如果你觉得这还不够,你可以自己亲自写一个插件,将其发布到npm上. ?常用的grunt插件有: ?Less handlebars jade JS Hint watch ?下面我们就以less为例,来看看如何使用grunt来把less编

Grunt入门教程之二 —— concat插件

Grunt入门教程之二 Concat插件 concat是grunt中用来做文件连接的常用插件,比如说你写了一个类库,有三大模块,如: a.js b.js c.js 当你的项目准备发布的时候,你可能需要将这三个模块合并成一个大的模块all.js,这样做可以减少HTTP请求,增快页面的响应速度. 如果我们每次发布的时候又要连接这三个模块,并测试all.js,确保大模块无BUG之后再发布,就显得很蛋疼了.一种好的方式是,每当你修改了其中一个小模块,他都会自动连接成all.js,并且你的项目在开发的时候

Delphi : 自动升级组件AutoUpgrader简单教程(初学者)

AutoUpgrader简单教程(写给初学者) 1.放置一个TauAutoUpgrader在窗体上 2.双击auAutoUpgrader1,在弹出的对话框中设定一些要件: 首先选择按日期还是按版本号检查更新并填好日期或版本号(该日期或版本号也可以在会同时记录在VersionData属性里,版本号主要通过该属性来检查),然后单击add按钮添加需要更新的文件的http下载地址,因AutoUpgrader仅支持http方式,不支持ft方式,所以不要填错.Upgrade method默认即可:然后在“R

PowerDNS简单教程(2):功能篇

目录: PowerDNS简单教程(1):安装篇 PowerDNS简单教程(2):功能篇(本篇) PowerDNS简单教程(3):管理篇 PowerDNS简单教程(4):优化篇 安装完PowerDNS之后,它就已经在运行了.可通过 ps -ef |grep pdns看到pdns 的进程——通常 pdns是有两个进程在运行的. 通过apt安装的PowerDNS,主要使用的文件在如下目录中: /etc/default/pdns /init.d/pdns /powerdns/pdns.conf /usr

FusionCharts简单教程(一)---建立第一个FusionCharts图形

因为项目需求须要做一个报表,选择FusionCharts作为工具使用.因为曾经没有接触过报表,网上也没有比較具体的fusionCharts教程,所以决定好好研究FusionCharts,同一时候做一个比較简单的教程提供參考.因为能力有限(应届毕业生的菜鸟而已),所以教程(学习笔记而已)不免会有错误,望别喷,望指正.当然肯定避免不了会參考其它资料的. 一.FusionCharts简单介绍和安装使用 1.1.简单介绍 FusionCharts是InfoSoft Global公司的一个产品,而Fusi

WCF入门简单教程(图文) VS2010版

在这个例子中我们将使用VS 2010 创建一个WCF服务,其中会了解 [DataContract] [ServiceContract] 等特性.  内置的 WCFSVCHost ,并使用"WCF测试客户端"来测试我们创建的服务. 注意下面的所有类.接口及方法都添加了public 的访问级别. 一,建立一个WCF服务库 创建一个WCF服务库项目 在解决方案中会自动为我们生成两个类文件"IService1.cs"和"Service1.cs". 这两个

PowerDNS简单教程(3):管理篇

目录: PowerDNS简单教程(1):安装篇 PowerDNS简单教程(2):功能篇 PowerDNS简单教程(3):管理篇(本篇) PowerDNS简单教程(4):优化篇 说到管理,其实是对于PowerDNS的管理.我们可以通过Poweradmin来管理 PowerDNS.我参考了这个网页 http://www.unixmen.com/install-poweradmin-a-web-based-control-panel-for-powerdns-in-linux/ 来安装 Powerad

lighttpd mysql php简单教程

lighttpd mysql php简单教程 lighttpd+php5+mysql+Debian etch lighttpd是速度最快的静态web server,mysql最通用的的database server,不过考虑换成sqlite 先来看看lighttpd吧,装了debian 后一切都很简单了. 先通过ssh登入到debian 1.#apt-get install lighttpd 2.#apt-get install php5-cgi 配置php #vi /etc/php5/cgi/

Grunt入门教程之(三)

Grunt入门教程之三 Yuidoc插件 Yuidoc 是一个可以将代码注释生成HTML格式文档的工具,文档的生成完全基于JavaDoc风格的代码注释规则. 我们在写公共模块或者API的时候,往往会输出文档给调用者查看,这时候Yuidoc就是一个很好的助手. 下面介绍一下如何在Grunt中使用Yuidoc. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 grunt.initConfig({ pkg: grunt.file.readJSON('package.jso