关于grunt的一些记录,记的比较乱。。。
0.删除node_modules文件夹
命令行:
npm install rimraf -g //先运行 rimraf node_modules //然后运行
1.安装grunt及插件
安装grunt:
npm install grunt --save-dev
安装插件,不需要的可以删除:
npm install --save-dev grunt-contrib-cssmin grunt-contrib-uglify grunt-contrib-watch grunt-contrib-copy
2.插件介绍
grunt-contrib-jshint:javascript语法错误检查;
grunt-contrib-watch:实时监控文件变化、调用相应的任务重新执行;
grunt-contrib-uglify:JS文件压缩
grunt-contrib-cssmin:css文件压缩
grunt-contrib-copy:复制文件、文件夹
grunt-contrib-clean:清空文件、文件夹
grunt-contrib-concat:合并多个文件的代码到一个文件中
grunt-contrib-htmlmin: HTML文件压缩
3.—save-dev
“—save-dev”的意思是,在当前目录安装grunt的同时,顺便把grunt保存为这个目录的开发依赖项。
上文在配置package.json时,其中的“devDependencies”中就会存储开发依赖项。
在学习grunt中,遇到的一些教程链接:
npm的package.json中文文档:https://github.com/ericdum/mujiang.info/issues/6
grunt入门教程:http://www.cnblogs.com/wangfupeng1988/p/4561993.html
grunt常用插件及示例说明:http://blog.csdn.net/ligang2585116/article/details/53790043
我配置的Gruntfile.js文件
module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON(\'package.json\'), clean: { build: [\'build\'] }, copy: { main: { files: [ { expand: true, cwd: \'www\', src: \'**\', dest: \'build\', flatten: false, filter: \'isFile\' } ] } }, uglify: { main: { options: { sourceMap: false }, files: [ { expand: true, cwd: \'build/src/js/\', src: [\'**/*.js\', \'!**/*.min.js\'], dest: \'build/src/js/\' }, { expand: true, cwd: \'build/src/libs/\', src: [\'*.js\', \'!*.min.js\'], dest: \'build/src/libs/\' }, { expand: true, cwd: \'build/src/libs/jquery\', src: [\'*.js\', \'!*.min.js\'], dest: \'build/src/libs/jquery\' }, { expand: true, cwd: \'build/src/libs/layui/lay/modules\', src: [\'*.js\', \'!*.min.js\'], dest: \'build/src/libs/layui/lay/modules\' }, { expand: true, cwd: \'build/src/libs/layui\', src: [\'*.js\', \'!*.min.js\'], dest: \'build/src/libs/layui\' } ] } }, cssmin: { /* minify: { expand: true, cwd: \'demo/resources/css\', src: [\'*.css\', \'!*.min.css\'], dest: \'build/resources/css\' } */ main: { files: [ { expand: true, cwd: \'build/src/css\', src: [\'*.css\', \'!*.min.css\'], dest: \'build/src/css\' } ] }, easyUI: { files: [ { expand: true, cwd: \'build/src/libs/easyUI\', src: [\'*.css\', \'!*.min.css\'], dest: \'build/src/libs/easyUI\' } ] } }, watch: { options: { livereload: true }, build: { files: [\'www/src/*.html\', \'www/src/js/**/*.js\', \'www/src/css/*.css\'], tasks: [\'uglify\', \'cssmin:main\'], options: { spawn: false } } } }); grunt.loadNpmTasks(\'grunt-contrib-clean\'); grunt.loadNpmTasks(\'grunt-contrib-concat\'); grunt.loadNpmTasks(\'grunt-contrib-copy\'); grunt.loadNpmTasks(\'grunt-contrib-uglify\'); grunt.loadNpmTasks(\'grunt-contrib-cssmin\'); grunt.loadNpmTasks(\'grunt-contrib-watch\'); grunt.registerTask(\'default\', [\'clean\', \'copy\', \'cssmin\', \'watch\']); //grunt.registerTask(\'default\', [\'clean\']); };