grunt自动化环境配置


1.创建package.json文件和Gruntfile.js文件,再执行下grunt命令,ok

一、package.json

{
  "name": "dps",
  "varsion": "0.1.0",
  "devDependencies": {
    "grunt": "*",
    "grunt-contrib-concat": "^0.5.1",
    "grunt-contrib-connect": "^0.11.2",
    "grunt-contrib-cssmin": "*",
    "grunt-contrib-jshint": "*",
    "grunt-contrib-less": "^1.0.1",
    "grunt-contrib-uglify": "*",
    "grunt-contrib-watch": "^0.6.1",
    "load-grunt-tasks": "^3.2.0"
  }
}
二、Gruntfile.js

module.exports = function(grunt) {


    require('load-grunt-tasks')(grunt); //加载所有的任务
    //require('time-grunt')(grunt); 如果要使用 time-grunt 插件

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
         uglify: {
              options: {
               //banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
              },
              my_target: {
                files: [
                    {
                        expand: true,
                        //相对路径
                        cwd: 'js/src/',
                        src: '**/*.js',
                        dest: 'js/des/',
                        rename: function (dest, src) {  
                                  var folder = src.substring(0, src.lastIndexOf('/'));  
                                  var filename = src.substring(src.lastIndexOf('/'), src.length);  
                                  filename = filename.substring(0, filename.lastIndexOf('.'));  
                                  var fileresult=dest + folder + filename + '.min.js';  
                                  grunt.log.writeln("现处理文件:"+src+"  处理后文件:"+fileresult);  

                                  return fileresult;  
                              } 
                    }
                ]
             }
            },
        cssmin: {
           my_target: {
                files: [
                    {
                        expand: true,
                        //相对路径
                        cwd: 'css/src/',
                        src: '**/*.css',
                        dest: 'css/des/',
                        rename: function (dest, src) {  
                                var folder = src.substring(0, src.lastIndexOf('/'));  
                                var filename = src.substring(src.lastIndexOf('/'), src.length);  
                                filename = filename.substring(0, filename.lastIndexOf('.'));  
                                var fileresult=dest + folder + filename + '.min.css';  
                                grunt.log.writeln("现处理文件:"+src+"  处理后文件:"+fileresult);  

                                return fileresult;
                                }
                    }
                ]
            }

        },
        jshint: {
            options: {
                //大括号包裹
                curly: true,
                //对于简单类型,使用===和!==,而不是==和!=
                eqeqeq: true,
                //对于首字母大写的函数(声明的类),强制使用new
                newcap: true,
                //禁用arguments.caller和arguments.callee
                noarg: true,
                //对于属性使用aaa.bbb而不是aaa['bbb']
                sub: true,
                //查找所有未定义变量
                undef: true,
                //查找类似与if(a = 0)这样的代码
                boss: true,
                //指定运行环境为node.js
                node: true
            },
            //具体任务配置
            files: {
                src: ['js/src/*.js']
            }
        },
        less: {
            development: {
                files: [{
                    expand: true,
                    cwd: 'less/src',
                    src: ['*.less'],
                    dest: 'css/src',
                    ext: '.css'
                }]
            }
        },
        connect: {
            options: {
                port: 9000,
                hostname: '192.168.0.250', //默认就是这个值,可配置为本机某个 IP,localhost 或域名
                livereload: 35729  //声明给 watch 监听的端口
            },

            server: {
                options: {
                    open: true, //自动打开网页 http://
                    base: [
                        ''  //主目录
                    ]
                }
            }
        },

        watch: {
            livereload: {
                options: {
                    livereload: '<%=connect.options.livereload%>'  //监听前面声明的端口  35729
                },

                files: [  //下面文件的改变就会实时刷新网页
                    'h5/*.html',
                    //'./less/{,*/}*.less',
                    './**/*.html',
                    './css/{,*/}*.css',
                    './css/{,*/**/}*.css',
                    './js/{,*/}*.js',
                    './images/{,*/}*.{png,jpg}'
                ],
                //tasks: ['less']
            }
        }


    });

    // 加载包含 "uglify" 任务的插件
    grunt.loadNpmTasks('grunt-contrib-uglify');

    //加载 cssmin 插件任务
    grunt.loadNpmTasks('grunt-contrib-cssmin'); 

    // 加载指定插件任务
    // grunt.loadNpmTasks('grunt-contrib-jshint');

      //grunt.loadNpmTasks('grunt-contrib-less');

    //默认执行插件任务 
    grunt.registerTask('default', ['uglify','cssmin']);

    grunt.registerTask('serve', [
        'connect:server',
        'watch'
    ]);


};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值