转载:http://www.cnblogs.com/hubcarl/p/4095122.html
grunt.initConfig方法
用于模块配置,它接受一个对象作为参数。该对象的成员与使用的同名模块一一对应。
每个目标的具体设置,需要参考该模板的文档。就cssmin来讲,minify目标的参数具体含义如下:
- expand:如果设为true,就表示下面文件名的占位符(即*号)都要扩展成具体的文件名。
- cwd:需要处理的文件(input)所在的目录。
- src:表示需要处理的文件。如果采用数组形式,数组的每一项就是一个文件名,可以使用通配符。
- dest:表示处理后的文件名或所在目录。
- ext:表示处理后的文件后缀名。
grunt常用函数说明:
grunt.initConfig:定义各种模块的参数,每一个成员项对应一个同名模块。
grunt.loadNpmTasks:加载完成任务所需的模块。
grunt.registerTask:定义具体的任务。第一个参数为任务名,第二个参数是一个数组, 表示该任务需要依次使用的模块。
grunt常用模块:
- grunt-contrib-clean:删除文件。
- grunt-contrib-compass:使用compass编译sass文件。
- grunt-contrib-concat:合并文件。
- grunt-contrib-copy:复制文件。
- grunt-contrib-cssmin:压缩以及合并CSS文件。
- grunt-contrib-imagemin:图像压缩模块。
- grunt-contrib-jshint:检查JavaScript语法。
- grunt-contrib-uglify:压缩以及合并JavaScript文件。
- grunt-contrib-watch:监视文件变动,做出相应动作。
package.json 包依赖关系:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
{ "name" : "grunt-study" ,
"version" : "1.0.0" ,
"description" : "study" ,
"main" : "index.js" ,
"scripts" : {
"test" : "test"
},
"repository" : {
"type" : "git" ,
},
"devDependencies" :{
"matchdep" : "latest" ,
"shelljs" : "latest" ,
"ngmshell" : "latest" ,
"grunt" : "latest" ,
"grunt-contrib-clean" : "latest" ,
"grunt-contrib-concat" : "latest" ,
"grunt-contrib-copy" : "latest" ,
"grunt-contrib-connect" : "latest" ,
"grunt-contrib-htmlmin" : "latest" ,
"grunt-contrib-cssmin" : "latest" ,
"grunt-contrib-imagemin" : "latest" ,
"grunt-contrib-uglify" : "latest" ,
"grunt-contrib-watch" : "latest" ,
"grunt-usemin" : "latest" ,
"connect-livereload" : "latest"
},
"keywords" : [
"grunt"
],
"author" : "bluesky" ,
"license" : "BSD-2-Clause" ,
"bugs" : {
}
} |
Gruntfile.js配置css、image、javascript、html压缩
1 module.exports = function (grunt) { 2 3 require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks); 4 5 grunt.initConfig({ 6 7 //清除目录 8 clean: { 9 all: ['dist/html/**', 'dist/*.*'], 10 image: 'dist/html/images', 11 css: 'dist/html/css', 12 html: 'dist/html/**/*' 13 }, 14 15 copy: { 16 src: { 17 files: [ 18 {expand: true, cwd: 'src', src: ['*.html'], dest: 'dist/html'} 19 ] 20 }, 21 image: { 22 files: [ 23 {expand: true, cwd: 'src', src: ['images/*.{png,jpg,jpeg,gif}'], dest: 'dist/html'} 24 ] 25 } 26 }, 27 28 // 文件合并 29 concat: { 30 options: { 31 separator: ';', 32 stripBanners: true 33 }, 34 js: { 35 src: [ 36 "src/js/*.js" 37 ], 38 dest: "dist/html/js/app.js" 39 }, 40 css:{ 41 src: [ 42 "src/css/*.css" 43 ], 44 dest: "dist/html/css/main.css" 45 } 46 }, 47 48 //压缩JS 49 uglify: { 50 prod: { 51 options: { 52 mangle: { 53 except: ['require', 'exports', 'module', 'window'] 54 }, 55 compress: { 56 global_defs: { 57 PROD: true 58 }, 59 dead_code: true, 60 pure_funcs: [ 61 "console.log", 62 "console.info" 63 ] 64 } 65 }, 66 67 files: [{ 68 expand: true, 69 cwd: 'dist/html', 70 src: ['js/*.js', '!js/*.min.js'], 71 dest: 'dist/html' 72 }] 73 } 74 }, 75 76 //压缩CSS 77 cssmin: { 78 prod: { 79 options: { 80 report: 'gzip' 81 }, 82 files: [ 83 { 84 expand: true, 85 cwd: 'dist/html', 86 src: ['css/*.css'], 87 dest: 'dist/html' 88 } 89 ] 90 } 91 }, 92 93 //压缩图片 94 imagemin: { 95 prod: { 96 options: { 97 optimizationLevel: 7, 98 pngquant: true 99 }, 100 files: [ 101 {expand: true, cwd: 'dist/html', src: ['images/*.{png,jpg,jpeg,gif,webp,svg}'], dest: 'dist/html'} 102 ] 103 } 104 }, 105 106 // 处理html中css、js 引入合并问题 107 usemin: { 108 html: 'dist/html/*.html' 109 }, 110 111 //压缩HTML 112 htmlmin: { 113 options: { 114 removeComments: true, 115 removeCommentsFromCDATA: true, 116 collapseWhitespace: true, 117 collapseBooleanAttributes: true, 118 removeAttributeQuotes: true, 119 removeRedundantAttributes: true, 120 useShortDoctype: true, 121 removeEmptyAttributes: true, 122 removeOptionalTags: true 123 }, 124 html: { 125 files: [ 126 {expand: true, cwd: 'dist/html', src: ['*.html'], dest: 'dist/html'} 127 ] 128 } 129 } 130 131 }); 132 133 134 grunt.registerTask('prod', [ 135 'copy', //复制文件 136 'concat', //合并文件 137 'imagemin', //图片压缩 138 'cssmin', //CSS压缩 139 'uglify', //JS压缩 140 'usemin', //HTML处理 141 'htmlmin' //HTML压缩 142 ]); 143 144 grunt.registerTask('publish', ['clean', 'prod']); 145 };
index.html发布之前内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<! DOCTYPE html>
< html >
< head >
< title >Grunt 测试</ title >
< meta charset="utf-8">
<!-- build:css css/main.css -->
< link rel="stylesheet" href="css/common.css">
< link rel="stylesheet" href="css/web.css">
<!-- endbuild -->
<!-- build:js js/main.js -->
< script src="js/zepto.js"></ script >
< script src="js/common.js"></ script >
< script src="js/service.js"></ script >
<!-- endbuild -->
</ head >
< body >
< p ></ p >
Hello,Grunt! </ body >
</ html >
|
相关推荐
Pro Grunt.js gets you quickly up-to-speed with this popular JavaScript-based task runner. Author James Cryer takes you from initial installation all the way through to authoring successful plugins. ...
1. **代码格式化压缩**:Gulp可以集成如ESLint、Prettier等工具,对JavaScript、CSS、HTML等代码进行格式化和压缩,确保代码规范且体积最小化,提高页面加载速度。 2. **图片压缩**:利用Gulp-image或者gulp-...
- `Gruntfile.js`:Grunt任务配置文件,用于自动化构建过程,如编译、压缩等。 - `www.jq22.com.txt`:可能是网址文本文件,记录了jCarousel的演示地址。 - `jquery插件库.url`:快捷方式文件,指向jQuery插件库的...
咕噜声图像精灵 将图像转换为 css sprite 图像 入门 这个插件需要 Grunt。 如果您以前没有使用过 ,请务必查看指南,... 如果你的操作系统是Ubuntu|Mac os ,当你运行npm install grunt-image-sprite ,脚本会自动安装
通过Grunt,开发者可以编写任务配置文件,定义一系列自动化任务,如编译CSS、压缩JavaScript等,从而提升开发效率。 这个插件的主要功能是将Adobe Illustrator (AI) 创建的SVG文件转换成符合SVG符号(symbol)标准...
Grunt可以用于执行任务,如合并、压缩CSS和JavaScript文件,而Bower则用于管理前端依赖库,如jQuery和fullpage.js,后者可能用于实现全屏滚动效果。 总结来说,`flexible.js`是实现淘宝弹性布局方案的关键,它简化...
Grunt 是一个自动化构建工具,它允许开发者通过编写配置文件来定义一系列的任务,如编译代码、压缩文件、执行测试等,从而提高开发效率。`grunt-extract-svg-paths` 就是这样一种任务,它专注于从SVG文件中提取 `...
4. **前端构建工具**:如Grunt或Gulp,用于自动化CSS和JavaScript的编译、压缩和合并。 创建Magento主题不仅需要对Magento架构有深入理解,还需要熟悉前端开发技术,如HTML、CSS、JavaScript和LESS/SASS。随着...
Webpack 是一款强大的前端构建工具,它能够管理和打包项目中的各种资源,如JavaScript、CSS、图片等。相较于早期的构建工具Grunt和Gulp,Webpack 的核心理念是基于模块的依赖管理,它通过入口文件自动追踪并处理所有...
--phantomjs The task to generate the image. --readme The task to update readme. --updatestargazers The task to update the count of the stargazers. 为什么? 大家是否想过:...
7. 构建工具:如Webpack、Gulp、Grunt,自动化处理资源文件,提高开发效率。 8. 框架和库:如React、Vue、Angular用于前端开发,jQuery简化JavaScript操作。 9. 后端技术:如Node.js、PHP、Python,处理服务器端逻辑...
3. 创建一个包含SVG图标文件的文件夹,并在Gruntfile.js中配置Grunticon任务。 4. 运行Grunt任务:`grunt grunticon`,生成的CSS和JavaScript文件会放置在指定的输出目录。 5. 在HTML文件中引入生成的CSS文件,并在...
JavaScript HTML renderer The script allows you to take "screenshots" of webpages or parts of it, directly on the users browser. The screenshot is based on the DOM and as such may not be 100% accurate...
1. **项目部署**:在项目从本地环境部署到生产环境时,URL可能需要相应地调整,`rework-plugin-url` 能够自动化这一过程。 2. **资源优化**:通过将小图片转换为data URI,减少HTTP请求,提高页面加载速度。 3. **...
我的基础构建项目使用 NPM 和 Grunt、Sass、Compass、Image spriting JS 提示、CSS lint、JS Uglify、concat 和所有我喜欢使用的可爱工具。 入门! 确保您安装了最新版本的 Compass。 如果未安装,请访问网站更多...
7. **构建工具**:可能包含Grunt、Gulp或Webpack配置文件,这些工具用于自动化构建过程,包括代码编译、压缩、合并和优化。 8. **测试文件**:如果项目遵循良好的开发实践,可能会有测试文件(如*.spec.js)用于...
6. 进程自动化:可能集成到构建流程中,如Webpack、Gulp或Grunt等,自动对项目中的所有图像进行优化,确保每次更新都得到最小化的图像。 7. CDNs(内容分发网络)集成:将优化后的图像托管在CDN上,利用全球分布的...
5. **构建工具**:如`Grunt`、`Gulp`或`Webpack`,用于自动化任务,如编译、压缩和部署。 6. **测试文件**:如`.spec.js`,用于单元测试和功能测试。 7. **README或文档**:解释项目结构、安装和使用方法。 在开发...
前端架构体系技术 一、框架与组件 * Bootstrap 等 UI 框架设计与实现 + 伸缩布局:grid 网格...* 组件自动分析白名单配置 * 自定义插件编写 * Npm、jspm、bower 包管理工具 * R.js、Browserify、webpack 构建工具
7. **构建脚本**:如果项目是通过Gulp、Grunt或Webpack等工具进行构建和优化的,那么会有一些配置文件(如gulpfile.js、webpack.config.js)和构建命令。 8. **JSON或其他配置文件**:可能包含环境配置、API密钥或...