使用grunt 之前,需要做一些基本工作。

  1、在E盘 新建空文件夹 grunt。

  2、在grunt目录下新建package.json 文件,用了存储 npm模块的依赖项。基本依赖块代码如下:

{
"name": "demo",
"file": "zepto",
"version": "0.1.0",
"description": "demo",
"license": "MIT",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-jshint": "~0.6.3",
"grunt-contrib-uglify": "~0.2.1",
"grunt-contrib-requirejs": "~0.4.1",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-clean": "~0.5.0",
"grunt-strip": "~0.2.1"
},
"dependencies": {
"express": "3.x"
}
}

  2、启动命令行:进入E盘,下载相关的js文件包。

     这时候会根据package.json里的代码下载相关的grunt插件包。

  

    下载完成后,会自动生成名为 “node_modules”的文件夹,里面便是相关的插件包。

    

  3、新建 Gruntfile.js  

    该文件主要做两件事:

    ① 读取package信息
    ② 插件加载、注册任务,运行任务(grunt对外的接口全部写在这里面)

  4、新建src文件夹,分别添加两个测试JS文件---a.js,b.js(代码自己随意写下)。

(一)文件压缩 插件 grunt-contrib-unglify

Gruntfile.js 如下代码

module.exports=function(grunt){
grunt.initConfig({
uglify:{
       options:{
         banner:'/*this is 文件头注释信息,只会出现一次*/'
       },
my_target:{
files:{
'dest/lib.min.js':['src/a.js','src/b.js']
}
}
}
}); grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('default', ['uglify']);
};

   使用 grunt 命令,成功后,便可在 生成压缩好后的 lib.min.js 文件。

 

  更多的例子 可以在下载的  /node_modules/grunt-contrib-uglifydocs/uglify-examples.md 查看

(二)文件合并  grunt-contrib-concat

module.exports=function(grunt){
console.log(grunt);
grunt.initConfig({
concat:{
options:{
separator:'/*分隔符*/',
banner:'/*測試*/',
footer:'/*文件尾信息,只会出现一次*/'
}, /* *//*合并成一个文件*//*
dist:{
src:['src/a.js','src/b.js'],
dest:'dist/built.js'
},*/ basic_and_extras: {
files: {
'dist/basic.js': ['src/a.js'],
'dist/with_extras.js': ['src/b.js', 'src/c.js']
}
}
}
}); grunt.loadNpmTasks('grunt-contrib-concat');
grunt.registerTask('default', ['concat']);
};

  更多的例子可以在  /node_modules/grunt-contrib-contact/contact-examples.md 查看

(三)检测语法知识 grunt-contrib-jshint

  该插件用于检测文件中的js语法问题。

  Gruntfile.js 里如下:

module.exports=function(grunt){
grunt.initConfig({
jshint:{
all:['src/b.js']
}
}); grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.registerTask('default',['jshint']);
};

    如果你确实分号,会有如下提示

  

  如果需要忽视这个,只需要

jshint: {
/* options: {
'-W033': true
},
all:['src/b.js']*/ ignore_warning: {
options: {
'-W033': true
},
src: ['src/b.js']
}
}

  以上两种方式都可以忽略 缺少分号 语法错误。

  至于类似于 'W033' 这样的警告编码具体含义,可以查看  /node_modules/jshint/src/message.js 。

(四)样式文件 grunt-contrib-cssmin

  Gruntfle.js代码如下

module.exports=function(grunt){
console.log(grunt);
grunt.initConfig({
cssmin: {
compress: {
files: {
'dest/car.min.css': [
"src/css/a.css",
"src/css/b.css"
]
}
}
}
}); grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.registerTask('default', ['cssmin']);
};

  进入文件所在根目录,输入 grunt 或 grunt cssmin --debug ,执行样式文件压缩。

    

  

grunt 基本使用使用(一)。的更多相关文章

  1. 初学seaJs模块化开发,利用grunt打包,减少http请求

    原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...

  2. grunt配置任务

    这个指南解释了如何使用 Gruntfile 来为你的项目配置task.如果你还不知道 Gruntfile 是什么,请先阅读 快速入门 指南并看看这个Gruntfile 实例. Grunt配置 Grun ...

  3. 快速开发Grunt插件----压缩js模板

    前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...

  4. 是时候搁置Grunt,耍一耍gulp了

    也算是用了半年Grunt,几个月前也写过一篇它的入门文章(点此查看),不得不说它是前端项目的一个得力助手.不过技术工具跟语言一样日新月异,总会有更好用的新的东西把旧的拍死在沙滩上(当然Grunt肯定没 ...

  5. 应用Grunt自动化地优化你的项目前端

    在不久前我曾写了一篇 应用r.js来优化你的前端 的文章,为大家介绍了r.js这个实用工具,它可以很好地压缩.合并前端文件并打包整个项目.但是如果将r.js放到项目中,我们不得不顾及到一个问题——项目 ...

  6. Grunt(页面静态引入的文件地址的改变探究)-V2.0

    相关插件的引用: grunt-usemin  对页面的操作 grunt-contrib-cssmin  压缩css load-grunt-tasks 瘦身gruntfile grunt-rev给md5 ...

  7. Grunt基本使用-V1.0

    浅语:grunt中文网:http://www.gruntjs.net/ 第一步:Grunt 依赖 Node.js 所以在安装之前确保你安装了 Node.js.然后开始安装 Grunt. 实际上,安装的 ...

  8. nodejs、npm、grunt——名词解释

    最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...

  9. grunt自定义任务——合并压缩css和js

    npm文档:www.npmjs.com grunt基础教程:http://www.gruntjs.net/docs/getting-started/ http://www.w3cplus.com/to ...

  10. Grunt学习使用

    原文地址:Grunt学习使用必看 grunt简介神马的不多说,到处一大堆. 我只说说我已经实现了的代码. 按照官方的教程 相信已经配置好了,接下来说 package.json 和 Gruntfile. ...

随机推荐

  1. IOS 中列表的TableView 详解,常用方法整理

    一.创建一个列表,不管代码还是nib拖拉,在nib创建的时候,记得加他的二个代理 (UITableViewDelegate UITableViewDataSource) 代码创建的话,需要关联他的代理 ...

  2. 1、win32创建窗口函数(windows程序内部运行机制)

    利用win32创建窗口函数,主要操作步骤为: 1.设计一个窗口类 2.注册窗口类 3.创建窗口 4.显示及窗口更新 5.消息循环 6.窗口过程函数   (1)设计一个窗口类 设计窗口类,这样的类型已经 ...

  3. asp.net中按钮回车事件(转自http://www.cnblogs.com/adinet/archive/2013/03/03/2941424.html)

    在做ASP.net WEB应用的时候,常常遇到会在同一个页面里添加多个按钮,而每个按钮肯定都会触发页面回送事件. 在ASP.NET中,只能指定一个带有runat="server"的 ...

  4. ps基础知识

    一 1. ps常用快捷键:ctrl+d 结束选区    ctrl+alt+z  返回          ctrl+z 撤销           ctrl+x 剪切 ctrl+t 编辑图片    ctr ...

  5. gdb汇编调试

    GDB调试汇编堆栈分析 代码: sudo apt-get install libc6-dev-i386命令安装所需库 进入之后先在main函数处设置一个断点,再run一下,使用disassemble指 ...

  6. 高级php面试题(转)

    一.mysql相关知识    1. mysql优化方式            MYSQL 优化常用方法            mysql 性能优化方案      2.如何分库分表            ...

  7. 【原创】使用Fiddler抓取手机网络包

    一: 下载安装Fiddler 二: 打开 tools--Telerik Fiddler Options, 进行如下设置

  8. 基于springmvc和restClient的rest服务的测试

    在开发中,不熟悉驱动驱动测试开发的coder往往喜欢将服务应用启动以后测试,对于GET请求可以直接在浏览器中输入URL就可以,参数非中文可以直接追加到URL后.但是,对于其他请求方式的测试必须借助相应 ...

  9. BAT的面试经验_摘抄

    一.心态 心态很重要! 心态很重要! 心态很重要! 重要的事情说三遍,这一点我觉得是必须放到前面来讲. 找工作之前,有一点你必须清楚,就是找工作是一件看缘分的事情,不是你很牛逼,你就一定能进你想进的公 ...

  10. 使用ssh连接远程主机

    在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的. ssh登录远程主机(服务器)一般有两种方式:无密钥方式  ...