准备工作:grunt基于node环境运行,所有先安装node.js

1.安装grunt,通过node的npm的包管理工具

 >npm install grunt --save-dev

2.npm init在项目中引导创建一个package.json文件

>npm init

3.新建一个Gruntfile的js文件,主要是写入grunt的配置

module.exprots = function(grunt){

grunt.initConfig({此处写配置的信息})

}

 4.几个常用的插件

   (1)less监听

>npm install grunt-contrib-less --save-dev

a.配置信息:

less:{development: {files: {'public/css/home/home.css': 'public/css/home/home.less'}}}

b.注册信息:

grunt.loadNpmTasks('grunt-contrib-less')

c.运行:

>grunt less

   (2)watch监听

>npm install grunt-contrib-watch --save-dev

a.配置信息:

watch:{css: {files: [ 'public/css/home/home.less'],tasks:['less'],options:{livereload:true}}}

b.注册信息:

grunt.loadNpmTasks('grunt-contrib-watch')

c.运行:

>grunt watch

   (3)浏览器同步测试工具

>npm install browser-sync --save-dev

a.配置信息:

不需要配置信息

b.注册信息:

不需要注册信息

c.运行:

>browser-sync start --server --file "*.html"

   (4)css压缩

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

a.配置信息:

cssmin: {
target: {
files: [{
expand: true,
cwd: 'public/css/home', //需要压缩的css路径
src: ['*.css', '!*.min.css'], //需要压缩的css
dest: 'build/css/home', //压缩之后的路径
ext: '.min.css' //压缩之后的css后缀名
}]
}
}

b.注册信息:

grunt.loadNpmTasks('grunt-contrib-cssmin')

c.运行:

>grunt cssmin

   (5)js合并压缩

>npm install grunt-contrib-uglify --save-dev

a.配置信息:

uglify: {
my_target: {
files: {
'build/js/home/home.min.js': ['public/js/home/home1.js', 'public/js/home/home2.js']
}
}
}

b.注册信息:

grunt.loadNpmTasks('grunt-contrib-uglify')

c.运行:

>grunt uglify

   (6)合并css和js

>npm install grunt-contrib-concat --save-dev

a.配置信息:

concat:{
js:{
files:{
'build/js/home/concat.js':['public/js/home/*.js']
}
},
css:{
files:{
'build/css/home/concat.css':['public/css/home/*.css']
}
}
}

b.注册信息:

grunt.loadNpmTasks('grunt-contrib-concat')

c.运行:

>grunt concat

   (7)css精灵

>npm install grunt-spritesmith --save-dev

a.配置信息:

sprite:{
all:{
src:["public/img/*.png","public/img/*.jpg"], //需要整理的图片
dest:"build/img/spriteRes.png", //生成一张图片的名称
destCss:"build/css/spriteRes.css" //生成css的路径和文件名
}
}

b.注册信息:

grunt.loadNpmTasks('grunt-spritesmith')

c.运行:

>grunt sprite

   (8)图片压缩

>npm install grunt-contrib-imagemin --save-dev

a.配置信息:

imagemin:{
release:{
files:[{
expand:true,
src:['build/img/spriteRes.png']
}],
options:{
optimizationLevel:3
}
}
}

b.注册信息:

grunt.loadNpmTasks('grunt-contrib-imagemin')

c.运行:

>grunt imagemin

   (9)注册多任务执行

  grunt.registerTask('default', ['uglify', 'cssmin', 'concat', 'imagemin']);

grunt构建一个项目的更多相关文章

  1. 使用 gulp 构建一个项目

    本章将介绍 gulp-watch-path stream-combiner2 gulp-sourcemaps gulp-autoprefixer 您还可以直接学习以下模块: 安装 Node 和 gul ...

  2. 基于Grunt构建一个的项目

    没有搭建环境的,请参考<Grunt自动化构建环境搭建 >,搭建完成后 新建一个项目目录,这里建立一个“Demo”目录 运行CMD,并进入这个目录,运行 npm install grunt ...

  3. 使用grunt构建前端项目

    1. grunt构建工具是基于nodejs上的,所以在使用之前一定要先安装好nodejs 2. 安装好nodejs后,node -v查看node版本 npm-v 查看npm版本信息 3. 在需要用到的 ...

  4. Vue+webpack构建一个项目

    1.安装CLI命令的工具  推荐用淘宝的镜像 npm install -g @vue/cli @vue/cli-init 2.使用命令构建一个名为myapp的项目 vue init webpack m ...

  5. 2016-7-15(1)使用gulp构建一个项目

    gulp是前端开发过程中自动构建项目的工具,相同作用的还有grunt.构建工具依 靠插件能够自动监测文件变化以及完成js/sass/less/html/image/css/coffee等文件的语法检查 ...

  6. 使用gulp构建一个项目

    gulp是前端开发过程中自动构建项目的工具,相同作用的还有grunt.构建工具依靠插件能够自动监测文件变化以及完成js/sass/less/html/image/css/coffee等文件的语法检查. ...

  7. 基于Grunt构建一个JavaScript库

    现在公认的JavaScript典型项目需要运行单元测试,合并压缩.有些还会使用代码生成器,代码样式检查或其他构建工具. Grunt.js是一个开源工具,可以帮助你完成上面的所有步骤.它非常容易扩展,并 ...

  8. 使用grunt构建seajs项目

    1.安装nodejs 2.安装grunt-cli npm install -g grunt-cli 3.进入到项目目录,同时准备好package.json和Gruntfile.js文件 //packa ...

  9. Django 构建一个项目

    一.创建django程序 终端命令:django-admin startproject fahaicmd IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python man ...

随机推荐

  1. macOS apache配置及开启虚拟服务器的开启,apache开启重写模式

    今天把自己的mac系统升到最新版,但是,apache却不能用了,因为mac上的apache是系统自带的,因为是mac目前的最新系统,所以出现了好多问题,整理了一下午也没有啥进展,最后还是把原来的在云盘 ...

  2. 【Ruby on Rails】Model中关于保存之前的原值和修改状态

    今天在Rails的Model中遇到了一个问题—— 当我从Model类中获取了一个ActiveRecord对象,对其进行了一系列修改(尚未保存),我该如何确定究竟哪些修改了呢? (设Model为Opti ...

  3. 头文件limits—各个类型的数据的范围

    要想知道各个类型的数据如int.float.double.long等所能表示的范围,可以加上头文件<limits>,这些类型的范围都在类numeric_limits中定义了的. 类模板:t ...

  4. 【子非鱼】插入排序过程呈现之java内置GUI表示

    先给代码,再给过程视频: package com.dyi.wyb.sort; import java.awt.Color; import java.awt.Graphics; import java. ...

  5. HTML中的table布局

    <table width="100" height="50" border="1" bgcolor="blue"& ...

  6. iOS开发之自定义UITableView的cell

    系统默认的UITableViewCell的每行都有横线(分隔符),就算没有数据也是如此,有时候我们想只在有数据的地方有下划线,可以去除下划线,然后在awarkFromNid方法中使用addsubvie ...

  7. JavaScript对象的深浅复制

    前言 从层次上来看,对象的复制可以简单地分为浅复制和深复制,顾名思义,浅复制是指只复制一层对象的属性,不会复制对象中的对象的属性,对象的深复制会复制对象中层层嵌套的对象的属性. 在复制对象时,除了要复 ...

  8. 玩玩 Nginx 2-----给Nginx添加第三方模块(动态更新upstream)

          接上一篇,我们在初始化安装的时候添加了nginx_lua模块,然后了解到nginx不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.接下来一起看看如何安装nginx第 ...

  9. window7使用svn(svn系列 客户端 知识二总结)

     ♣eclipse插件subclipse  ♣TortoiseSVN  ♣svn操作  ♣注意事项 使用svn可以在eclipse直接装subclipse或者在windows使用TortoiseSVN ...

  10. 测试一下js是否可用

      昨天刚获批通过了js权限,今天写一段小代码测试下是否可用 我用Javascript添加了 <p> <script type="text/javascript" ...