一、什么是gruntjavascript
grunt的官方解释是:javascript世界的构建工具。java
为什么要构建工具?
node
一句话:自动化。对于须要反复重复的任务,例如压缩(minification)、编译、单元测试、linting等,自动化工具能够减轻你的劳动,简化你的工做。当你在Gruntfile文件正确配置好了任务,任务运行器就会自动帮你或你的小组完成大部分无聊的工做。express
二、如何开始grunt?npm
一、准备node环境 安装node(参考官方)json
二、安装grunt : 咱们须要安装CLI官方推荐在全局安装CLI(grunt的命令行接口)grunt
npm install -g grunt-cli
三、新建package.json工具
{ "name":"my-project-name", //项目版本"version":"0.1.0","devDependencies":{ //插件名版本 "grunt":"~0.4.1", "grunt-contrib-jshint":"~0.6.3", "grunt-contrib-uglify":"~0.2.1", "grunt-contrib-requirejs":"~0.4.1", "grunt-contrib-copy":"~0.4.1", "grunt-contrib-concat":"~0.3.0", "grunt-contrib-clean":"~0.5.0", "grunt-strip":"~0.2.1" }, "dependencies":{ "express":"3.x" } }
4.新建Gruntfile.jsrequirejs
/*module.exports = function(grunt){ grunt.initConfig({ pkg:grunt.file.readJSON("package.json"), concat:{ options:{ separator:';' }, dist:{ src:['src/zepto.js','src/underscore.js','src/backbone.js'], dest:'dest/libs.js' } }, uglify:{ build:{ src:'dest/libs.js', dest:'dest/libs.min.js' } } }); grunt.loadNpmTasks('grunt-contrib-uglify') grunt.loadNpmTasks('grunt-contrib-concat'); grunt.registerTask('default', ['concat','uglify']); //grunt.registerTask('default', ['uglify']); } */ module.exports = function(grunt){ grunt.initConfig({ uglify:{ my_target:{ files:{ 'dest/list.min.js/':['src/zepto.js','underscroe.js'] } } } }); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.registerTask('default', ['uglify']); }