grunt前端任务管理工具
来源:互联网 发布:道教有什么软件 编辑:程序博客网 时间:2024/06/05 16:52
Gruntjs是前端项目构建工具,基于node的命令行工具。很多公司或者js项目都是用gruntjs来搭建,例如jQuery,twitter,Qunit等。主要功能有:
- 合并文件
- 压缩html/js/css/图片文件
- 语法检测
- 单元测试(基于Qunit)
- watch功能
相对于Ant的打包工具,grunt更加灵活,语法采用json,比xml语法更加简洁,作为前端工程师可能更喜欢写json。
GruntJS的安装
Grunt是基于nodejs的,所以安装GruntJS之前,需要保证你的电脑有nodejs环境,node环境比之前安装简单多了,现在windows平台只需要下载node安装程序,一路next就可以了。
安装grunt-cli
在命令行中,执行npm install -g grunt-cli
,来安装grunt-cli
安装grunt插件
在项目路径下的命令行中,输入npm install grunt-contrib-xxxx --save-dev
就可以完成插件安装,或者直接修改grunt的package.json,然后执行npm install
,npm会自动安装想用插件。
创建GruntJS管理项目
每个GruntJS都包括两个文件:
- package.json:依赖模块+你可能用到的变量和说明,例如:version、name
- Gruntfile.js:node module写法的任务管理文件
package.json
一个典型的package.json内容如下:
{ "name": "my-project-name", "version": "0.1.0", "devDependencies": { "grunt": "~0.4.0", "grunt-contrib-jshint": "~0.1.0", "grunt-contrib-concat": "~0.1.1", "grunt-contrib-uglify": "~0.1.0", "grunt-contrib-watch": "~0.1.4" }}
如果安装了新的插件,那么这个package.json会自动更新的,或者修改它,然后执行npm install
,也可以安装对应的插件。
Gruntfile.js
Gruntfile.js是node module格式的任务管理文件,例如:
module.exports = function(grunt) { // 以下代码初始化Grunt任务 grunt.initConfig({ // js语法检查 jshint: { … }, // 需要合并的任务 concat: { … }, // 压缩 uglify: { … }, // watch任务 watch: { … } }); // 加载package.json中的想用插件 grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-watch'); // 注册一个任务,第二参数可以是数组或者字符串 // 默认会执行default任务. grunt.registerTask('default', ['jshint', 'concat', 'uglify']);};
常用Grunt任务介绍
使用JSHint检查js语法
JSHint是JSLint的一个分支,可以用于js语法规则、错误检测。
jshint: { files: ['Gruntfile.js', 'lib/**/*.js']},
上面的代码可以检测lib文件夹下所有二级路径的js语法内容。另外后面可以使用watch任务,实时检测语法。
合并任务
concat是合并任务,可以合并打包js,css文件。
concat: { js: { src: ['lib/module1.js', 'lib/module2.js', 'lib/plugin.js'], dest: 'dist/script.js' } css: { src: ['style/normalize.css', 'style/base.css', 'style/theme.css'], dest: 'dist/screen.css' }},
使用uglifyjs压缩js文件
uglifyjs就不用介绍了,jQuery就是用它压缩的。
uglify: { dist: { src: ['<%= concat.js.dest %>'], dest: 'dist/script.min.js' }},
watch功能
watch功能是Grunt的实时处理任务,当监控的文件发生变化的时候,则执行相应的任务。
watch: { files: '<%= jshint.files %>', tasks: 'jshint'},
除了上面的任务外,还有很多插件,参考文章《双屏切图:使用livereload实现自动刷新》
- grunt前端任务管理工具
- Grunt:任务自动管理工具
- Grunt:任务自动管理工具
- Web中的Grunt:任务自动管理工具的基本介绍
- 前端构建实践02:用 Grunt 运行构建任务
- 前端自动化Grunt教程
- [前端] grunt入门
- Grunt教程-前端自动化
- 前端自动化工具grunt
- Grunt教程-前端自动化
- Grunt前端自动化工具
- grunt的任务种类
- grunt配置任务
- grunt创建任务
- grunt任务配置教程
- grunt任务配置
- 剖析Grunt任务配置
- 【VSCode】调试grunt任务
- linux ruby 开发工具推荐
- [cocos2d-x]CCProgressTimer进度条
- 队列的顺序表示与实现
- 关于Java读取xml文件的学习
- Freeman链码
- grunt前端任务管理工具
- XML文件的基本结构 [大三四八九月实习]
- 正则表达式
- Android(Java):fragment
- Hough变换原理
- 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用(转)
- dispatchTouchEvent,onTouchEvent与onInterceptTouchEvent
- 如何在 Ubuntu 12.04 Server 中安装图形用户界面
- ant 读取 svn版本号