diy1818

Good children, Constantly learning, Constantly growing.

grunt

grunt package.json

     {
        "name": "my-project-name",
        "version": "0.1.0",
        "description": "my test",
        "devDependencies": {
            "grunt": "~0.4.4",
            "grunt-contrib-less": "~0.11.0",
            "grunt-contrib-concat": "~0.4.0",
            "grunt-contrib-uglify": "~0.2.2",
            "grunt-contrib-watch": "~0.6.1",
            "grunt-contrib-cssmin": "~0.9.0",
            "grunt-contrib-clean": "~0.5.0",
            "grunt-contrib-copy": "~0.5.0",
            "load-grunt-tasks": "~0.4.0"
        }
    }
 

grunt Gruntfile.js

module.exports = function(grunt){
    //项目配置
    grunt.initConfig({
        pkg:grunt.file.readJSON('package.json'),
        path:{
            src:"dev",
            dist:"build"
        },
        clean:{
           build:{
              src:[
                  '<%= path.dist%>/'
              ]
           }
        },
        less:{
            build:{
                files:[
                    {
                        src:['<%= path.src%>/less/base.less'],
                        dest:'<%= path.dist%>/css/base.css'
                    },
                    {
                        src:['<%= path.src%>/less/layout.less'],
                        dest:'<%= path.dist%>/css/layout.css'
                    }
                ]

            }

        },
        concat:{
            js:{
               files:[{
                   src:['<%= path.src%>/js/a.js',
                   '<%= path.src%>/js/b.js'
                   ],
                   dest:'<%= path.dist%>/js/base.debug.js'
               }]
            },
            css:{
                files:[
                    {
                        src:[
                            '<%= path.dist%>/css/base.css',
                            '<%= path.dist%>/css/layout.css'
                        ],
                        dest:'<%= path.dist%>/css/all.debug.css'
                    }
                ]
            }
        },
        cssmin:{
            build:{
                expand:true,
                cwd:'<%= path.dist%>/css/',
                src:['*.debug.css','!.min.css'],
                dest:'<%= path.dist%>/css/',
                ext:'.min.css'
            }
        },
        uglify:{
            build:{
                files:[
                    {
                        expand: true,
                        cwd:'<%= path.dist%>/js/',
                        src:'*.debug.js',
                        dest:'<%= path.dist%>/js/',
                        ext:'.min.js'

                    }
                ]
            }
        },
        copy:{
            main:{
                files:[
                    {
                        expand:true,
                        cwd:'<%= path.src%>/img/',
                        src:'**',
                        dest:'<%= path.dist%>/img/'
                    }
                ]
            }
        },
        watch:{
            css:{
                files:['<%= path.src%>/less/*.less'],
                tasks:['less','concat:css','cssmin']
            },
            js:{
                files:['<%= path.src%>/js/*.js'],
                tasks:['concat:js','uglify']
            }
        }

    });
    //加载任务插件
   // grunt.loadNpmTasks('grunt-contrib-clean');
    //grunt.loadNpmTasks('grunt-contrib-less');
    require('load-grunt-tasks')(grunt);
    //执行的命令
    grunt.registerTask('build:less',['less']);
    grunt.registerTask('build:css',['concat:css']);
    grunt.registerTask('build:cssmin',['cssmin']);
    grunt.registerTask('build:js',['concat:js','uglify']);
    grunt.registerTask('build:copy',['copy']);

    grunt.registerTask('default',['clean','build:less','build:css','build:cssmin','build:js','copy']);

    grunt.registerTask('dev','watch');
};