grunt简记
module.exports = function(grunt) {
grunt.registerTask('default',function(){
console.log('Hello Grunt');
})
}
在执行他的时候,需要给参数赋值,比如在命令行输入:grunt greet:marymei
module.exports = function(grunt) {
grunt.registerTask('greet',function(name){
console.log('Hello' +name);
})
}
处理错误,遇到错误warn默认就不继续执行了,但是可以在命令行设置grunt greet:n --force来强制执行
但是如果是fatal,那么即使使用了grunt greet:n --force他也是不向下执行的
module.exports = function(grunt) {
grunt.registerTask('greet',function(name){
if(name.length < 2) {
grunt.warn('名字太短了~');
}
grunt.log.writeln('Hello' +name);
})
}
链接多个任务:
module.exports = function(grunt) {
grunt.registerTask('greet-1',function(){
grunt.log.writeln('Hello');
});
grunt.registerTask('greet-2',function(){
grunt.log.writeln('Hola');
});
grunt.registerTask('greet-3',function(){
grunt.log.writeln('您好');
});
grunt.registerTask('greentAll',['greet-1','greet-2','greet-3']);
};
初始化:
module.exports = function(grunt) {
grunt.initConfig({
greet: {
english: 'Hello'
}
});
grunt.registerTask('greet',funtion(){
grunt.log.writeln(grunt.config.get('greet.english'));
});
};
多任务:
module.exports = function(grunt) {
grunt.initConfig({
greet: {
english: 'Hello',
spanish:'Hola',
chinese:'您好'
}
});
grunt.registerMultiTask('greet',funtion(){
grunt.log.writeln(this.target + ':' + this.data);
});
};
文件与目录
创建目录
module.exports = function(grunt) {
grunt.registerTask('createFolders',function(){
grunt.file.mkdir('dist/stylesheets');
});
};
tree -I node_modules 命令可以查看文件目录
删除目录:
module.exports = function(grunt) {
grunt.registerTask('createFolders',function(){
grunt.file.mkdir('dist/stylesheets');
});
grunt.registerTask('clean',function(){
grunt.file.delete('dist');
});
};
显示版本
module.exports = function(grunt) {
grunt.initConfig({
pkg:grunt.file.readJSON('package.json');
});
grunt.registerTask('copyright',function(){
var content = grunt.tamplate.process('<%= pkg.name%>这个项目是由<%= pkg.author %>创建的,现在的版本<%= pkg.version %>');
grunt.file.write('copyright.txt', content);
});
};
复制文件:
module.exports = function(grunt){ grunt.loadNpmTasks('grunt-contrib-copy'); }
配置要复制的文件:
module.exports = function(grunt){
//加载复制文件的插件
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.initConfig({
copy: {
html: {
src: 'index.html',
dest: 'dist/'
},
style: {
src: 'stylesheets/*.css',
dest: 'dist/'
},
js: {
src:'javascript/**/*.js'
dest:'dist/'
}
}
})
};
监听文件变化的插件:
先安装如下命令
插件:npm install grunt-contrib-watch --save-dev
module.exports = function(grunt){
//加载复制文件的插件
grunt.loadNpmTasks('grunt-contrib-copy');
//加载监听文件变化,文件发生变化执行指定的任务
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.initConfig({
watch: {
html:{
files: ['index.html'],
tasks:['copy.html']
}
},
copy: {
html: {
src: 'index.html',
dest: 'dist/'
},
style: {
src: 'stylesheets/*.css',
dest: 'dist/'
},
js: {
src:'javascript/**/*.js',
dest:'dist/'
}
}
})
};
插件
创建服务器:grunt-contrib-connect
配置服务器
实时刷新:livereload
编译sass:grunt-contrib-sass
编译less:grunt-contrib-less
合并文件:grunt-contrib-concat
选项:options
最小化js:grunt-contrib-uglify
最小化css:grunt-contrib-cssmin
最小化图像:grunt-contrib-imagemin
安装插件的命令 sudo npm install xxxx --save-dev
配置服务器:
module.exports = function(grunt){
//加载复制文件的插件
grunt.loadNpmTasks('grunt-contrib-copy');
//加载监听文件变化,文件发生变化执行指定的任务
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.initConfig({
connect:{
server:{
options: {
port:8000,
base:'dist'
}
}
},
watch: {
html:{
files: ['index.html'],
tasks:['copy.html']
}
},
copy: {
html: {
src: 'index.html',
dest: 'dist/'
},
style: {
src: 'stylesheets/*.css',
dest: 'dist/'
},
js: {
src:'javascript/**/*.js',
dest:'dist/'
}
}
})
};
grunt简记的更多相关文章
- 初学seaJs模块化开发,利用grunt打包,减少http请求
原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...
- grunt配置任务
这个指南解释了如何使用 Gruntfile 来为你的项目配置task.如果你还不知道 Gruntfile 是什么,请先阅读 快速入门 指南并看看这个Gruntfile 实例. Grunt配置 Grun ...
- 快速开发Grunt插件----压缩js模板
前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...
- 是时候搁置Grunt,耍一耍gulp了
也算是用了半年Grunt,几个月前也写过一篇它的入门文章(点此查看),不得不说它是前端项目的一个得力助手.不过技术工具跟语言一样日新月异,总会有更好用的新的东西把旧的拍死在沙滩上(当然Grunt肯定没 ...
- 应用Grunt自动化地优化你的项目前端
在不久前我曾写了一篇 应用r.js来优化你的前端 的文章,为大家介绍了r.js这个实用工具,它可以很好地压缩.合并前端文件并打包整个项目.但是如果将r.js放到项目中,我们不得不顾及到一个问题——项目 ...
- RangePartitioner 实现简记
摘要: 1.背景 2.rangeBounds 上边界数组源码走读 3.RangePartitioner的sketch 源码走读 4.determineBounds 源码走读 5.关于RangePart ...
- Grunt(页面静态引入的文件地址的改变探究)-V2.0
相关插件的引用: grunt-usemin 对页面的操作 grunt-contrib-cssmin 压缩css load-grunt-tasks 瘦身gruntfile grunt-rev给md5 ...
- Grunt基本使用-V1.0
浅语:grunt中文网:http://www.gruntjs.net/ 第一步:Grunt 依赖 Node.js 所以在安装之前确保你安装了 Node.js.然后开始安装 Grunt. 实际上,安装的 ...
- nodejs、npm、grunt——名词解释
最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...
随机推荐
- notepad++ TextFX替代
notepad++目前的版本已没有了TextFX插件,插件的原作者在2008年的时候已停止维护.目前官方的意思是用以下插件替代,见 http://docs.notepad-plus-plus.org/ ...
- Element-ui安装与使用(网站快速成型工具)
我之所以将Element归类为Vue.js,其主要原因是Element是(饿了么团队)基于MVVM框架Vue开源出来的一套前端ui组件.我最爱的就是它的布局容器!!! 下面进入正题: 1.Elemen ...
- OpenCV视觉库
视频会议软件的视频质量除了与外置设备.编码器相关外,还与视频的后处理技术相关,视频图像通过后处理技术,如图像增强.图像去噪等,图像质量会得到主观上较大的提高.而我们通常的视频后处理技术会采用开源的项目 ...
- IOS ScrollView的使用 and delegate
ScrollView常用的属性设置 //设置内容尺寸 // CGFloat contentH=self.lastBtn.frame // .origin.y+self.lastBtn.frame.si ...
- 使用Axure管理团队项目图文教程 团队协作操作步骤
Axure RP团队版和企业版都支持团队协作,可以创建和管理团队项目,即多人共同创作一个原型.本文通过图文教程的形式,讲解了如何基于Axure Share服务创建和管理团队项目.因为Axure Sha ...
- R语言网络爬虫学习 基于rvest包
R语言网络爬虫学习 基于rvest包 龙君蛋君:2015年3月26日 1.背景介绍: 前几天看到有人写了一篇用R爬虫的文章,感兴趣,于是自己学习了.好吧,其实我和那篇文章R语言爬虫初尝试-基于RVES ...
- javascript中的作用域与作用域链
前几天,在写一段js代码时,出现了一些问题,调了很长时间也没有调通,其原因是,我在处理变量的作用域时错误地沿用了C++的作用域机制.因此我回炉了一次. 如果你使用过C++或java等一系列的面向对象的 ...
- data-ng-app 指令
1.data-ng-app指令定义了一个AngularJS应用程序的根元素. 2.data-ng-app会在页面加载完毕后自动进行初始化应用程序. 3.data-ng-app可以通过一个值连接到代码模 ...
- this以及执行上下文概念的重新认识
在理解this的绑定过程之前,必须要先明白调用位置,调用位置指的是函数在代码中被调用的位置,而不是声明所在的位置. (ES6的箭头函数不在该范围内,它的this在声明时已经绑定了,而不是取决于调用时. ...
- asciinema使用
asciinema让您轻松记录终端会话,并在终端和网页浏览器中重播它们. 安装最新版本: sapt-get install asciinema 记录你的第一个终端视频: asciinema rec f ...