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这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...
随机推荐
- HCNA配置console线路密码password认证
1.华为设备配置主机名<Huawei>system <Huawei>system-view Enter system view, return user view wit ...
- Windows Host 文件
Windows XP Home / Windows 7/ Windows Server 2008 c:\windows\system32\drivers\etc\hosts 如果碰到Localhost ...
- nodejs+MQTT协议实现远程主机控制
摘抄自百度:MQTT(MessageQueuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分. 所谓物联网,就是“万物互 ...
- C语言中头文件怎么写?(本文来源网络,由黑乌鸦进一步完善)
c语言头文件怎么写?我一直有这样的疑问,但是也一直没去问问到底咋回事:所以今天一定要把它弄明白! 其实学会写头文件之后可以为我们省去不少事情,可以避免书写大量的重复代码.有利于整理思路.使代码脉络 ...
- 特殊矩阵的压缩存储(转自chunlanse2014)
对称矩阵 对于一个矩阵结构显然用一个二维数组来表示是非常恰当的,但在有些情况下,比如常见的一些特殊矩阵,如三角矩阵.对称矩阵.带状矩阵.稀疏矩阵等,从节约存储空间的角度考虑,这种存储是不太合适的.下面 ...
- 官方发布PHP语法规范
PHP语言已经存在了超过20年,显然是世界上最流行的编程语言之一.PHP绝对是互联网服务器端web编程的通用语. 虽然有广泛的user-documentation,PHP语言总是错过语言规范.这并不是 ...
- percona-toolkit 工具集安装
下载地址: www.percona.com/downloads/percona-toolkit 安装方法一,源码安装: perl Makefile.PL make:make install ...
- Ubuntu 18.04 一键安装深度截图工具 Deepin Screenshot
一直在寻找Linux下的截图软件,终于发现了Deepin ScreenShot,其功能齐全,界面美观,唯一的缺点需要自己配置快捷键(后面会讲). 安装 直接在Ubuntu商店搜索“深度截图”,点击“安 ...
- 1993: C语言实验——最值
1993: C语言实验——最值 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1541 Solved: 727[Submit][Status][Web ...
- 用keytool制作证书并在tomcat配置https服务(三)
用keytool制作证书并在tomcat配置https服务(一) 用keytool制作证书并在tomcat配置https服务(二) 用keytool制作证书并在tomcat配置https服务(四) 模 ...