grunt中常见的插件
/**
* 需要用到的文件夹有 js(src) css image html
*/
gulp是一种自动化构建工具,可以增强我们的工作流程,他是基于 Node.js 构建的,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数
//1.引入 js的压缩 npm install grunt-contrib-uglify --save-dev
grunt.loadNpmTasks("grunt-contrib-uglify");
//css的压缩 npm install grunt-contrib-cssmin --save-dev
grunt.loadNpmTasks('grunt-contrib-cssmin');
//image的压缩 npm install grunt-contrib-imagemin --save-dev
// var mozjpeg = require('imagemin-mozjpeg');
//压缩html
grunt.loadNpmTasks('grunt-contrib-htmlmin');
//压缩js
grunt.loadNpmTasks('grunt-contrib-jshint');
//合并css文件
grunt.loadNpmTasks('grunt-contrib-concat');
//2.实时监听
grunt.loadNpmTasks('grunt-contrib-watch');
//2.设置任务
grunt.initConfig({
//js的压缩任务 src->dest
uglify:{
yasuo:{
options:{
mangle:false //参数不被破坏
},
expand:true,
cwd:"js",
src:"*.js",//你要压缩文件的路径
dest:"newJs",//压缩后创建的目录名称
rename:function (newJs,js) {
return newJs+"/"+js.replace(".js",".min.js");
}
}
},
//css的压缩任务 css->newCss
cssmin: {
target: {
files: [{
expand: true,
cwd: 'css', //你要压缩的文件路径
src: '*.css',
dest: 'new/css',
ext: '.min.css'
}]
}
},
// css的合并 release->allCss
concat: {//css文件合并
css: {
src: ['new/css/*.min.css'],//当前grunt项目中路径下的src/css目录下的所有css文件
dest: 'new/css/allCss/all.min.css' //生成到grunt项目路径下的allcss文件夹下为all.css
}
},
//image的压缩 image->img
imagemin: {
dynamic: {
expand: true,
cwd: 'image',
src: '*.{png,jpg,jpeg,gif,webp,svg}',
dest: 'new/img'
}
},
htmlmin: {
options: {
removeComments: true,//清除html中注释的部分
removeCommentsFromCDATA: true,
collapseWhitespace: true,//清空空格
collapseBooleanAttributes: true,//省略布尔值属性的值
removeAttributeQuotes: true,
removeRedundantAttributes: true,//清空所有的空属性
removeEmptyAttributes: true,//清除所有LINK标签上的type属性
removeOptionalTags: true //是否清除<html></html>和<body></body>标签
},
yasuo2: {
expand: true,
cwd: 'html',
src: '*.html',
dest: 'new/view',
rename:function(view,html){
return view+'/'+html.replace('.html','.min.html');
}
}
},
//检查js语法
jshint:{
all: [
'js/*.js'
],
options: {
browser: true,
devel: true
}
},
//监听
watch:{
a:{
files:['js/*js','css/*css','new/css/*css','html/*.html','src/img/*.{jpg,png,gif}'],
tasks:['uglify','concat','cssmin','htmlmin','imagemin']
}
}
});
//图片的压缩
grunt.loadNpmTasks('grunt-contrib-imagemin');
//设置默认任务 多任务用数组形式来进行传送
grunt.registerTask("default",["uglify","cssmin","concat","imagemin","htmlmin","jshint","watch"]);
grunt中常见的插件的更多相关文章
- 在 Sublime Text 2 中使用 SFTP 插件快速编辑远程服务器文件
在 Sublime Text 2 中使用 SFTP 插件快速编辑远程服务器文件 开源程序 浏览:29555 2013年05月02日 文章目录[隐藏] 常见的工作流程 SFTP 安装和使用方法 第一步: ...
- ios开发——错误总结篇&开发中常见错误和警告总结(四)
ios开发——开发总结&开发中常见错误和警告总结(四) 网易彩票实战总结(错误) 错误总结之类的实现 经典错误之重复定义与导入错误 经典错误关于父类的实现 通知对象: 控制器的定义 Xcode ...
- Eclipse中安装MemoryAnalyzer插件及使用
Eclipse中安装MemoryAnalyzer插件 一.简介 Eclipse作为JAVA非常好用的一款IDE,其自带的可扩展插件非常有利于JAVA程序员的工作效率提升. MemoryAnalyzer ...
- Unity项目开发过程中常见的问题,你遇到过吗?
最近看到有朋友问一个unity游戏开发团队,需要掌握哪些知识之类的问题.事实上Unity引擎是一个很灵活的引擎,根据团队开发游戏类型的不同,对人员的要求也有差异,所以不能一概而论.但是,一些在Unit ...
- 在Bootstrap开发框架中使用bootstrap-datepicker插件
在基于Boostrap的Web开发中,往往需要录入日期内容,基于Boostrap的插件中,关于日期的录入可以使用bootstrap-datepicker这个非常不错的插件,以替代默认的type=dat ...
- Ionic2中使用第三方插件极光推送
不同于Ionic1中插件的调用,Ionic2提供了Ionic Native.Ionic Native封装了一些常见的插件(如:Camera.Barcode Scanner等),这些插件的使用方式在官方 ...
- Spring中常见的bean创建异常
Spring中常见的bean创建异常 1. 概述 本次我们将讨论在spring中BeanFactory创建bean实例时经常遇到的异常 org.springframework.beans.fa ...
- web网页中使用vlc插件播放相机rtsp流视频
可参考: 使用vlc播放器做rtsp服务器 使用vlc播放器播放rtsp视频 使用vlc进行二次开发做自己的播放器 vlc功能还是很强大的,有很多的现成的二次开发接口,不需配置太多即可轻松做客户端播放 ...
- Eclipse中的checkstyle插件
一.Checkstyle工具 Checkstyle是一款检查Java程序源代码样式的工具,它可以有效的帮助我们检视代码以便更好的遵循代码编写标准. 官方地址:http://checkstyle.sou ...
随机推荐
- idea+springmvc+spring+mybatis+maven整合返回json数据webapi
首先看一张目录结构图: : 创建步骤: 1.创建maven webapp工程, 创建完后的目录结构为: 2.添加项目依赖(添加jar包) 需要的jar包: spring-webmvc, spring ...
- Memcached安装使用教程及常见问题
一.Windows下安装memcahed 1.下载memcache的windows稳定版,解压放某个盘下面,比如在c:/memcached2.在终端(也即cmd命令界面)下输入"c:/mem ...
- 【代码学习】GD库中图片缩印
bool imagecopyresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src ...
- 【珍藏】linux 同步IO: sync、fsync与fdatasync
传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列, ...
- macOS 中使用 phpize 动态添加 PHP 扩展的错误解决方法
使用 phpize 动态添加 PHP 扩展是开发中经常需要做的事情,但是在 macOS 中,首次使用该功能必然会碰到一些错误,本文列出了这些错误的解决方法. 问题一: 执行 phpize 报错如下: ...
- 蓝桥杯-猜年龄-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- C#集合之并发集合
.NET 4 开始,在System.Collection.Concurrent中提供了几个线程安全的集合类.线程安全的集合可防止多个线程以相互冲突的方式访问集合. 为了对集合进行线程安全的访问,定义了 ...
- [刷题]算法竞赛入门经典(第2版) 5-1/UVa1593 - Alignment of Code
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1593 - Alignment of Code #include&l ...
- 最新的chart 聊天功能( webpack2 + react + router + redux + scss + nodejs + express + mysql + es6/7)
请表明转载链接: 我是一个喜欢捣腾的人,没事总喜欢学点新东西,可能现在用不到,但是不保证下一刻用不到. 我一直从事的是依赖angular.js 的web开发,但是我怎么能一直用它呢?看看最近火的一塌糊 ...
- RabbitMQ4--发后即忘和RPC
在项目中引入RabbitMQ通常会考虑它会带来的好处:解耦应用程序,实现不同编程语言之间的互通,解除对特定通信协议的依赖,解除应用程序在时序上执行的依赖(异步).落实到代码层面就是两种常用应用模式:& ...