zoukankan      html  css  js  c++  java
  • Grunt再体验:支持LESS,Mocha,使用cron来定期运行Grunt Task

    废话不多说,直接看Grunt的配置文件:

    var path = require('path');
    
    module.exports = function (grunt) {
        grunt.initConfig({
            ftpscript: {
                uploadFixRateData: {
                    options: {
                        host: 'cadcptdgaop5',
                        port: 21,
                        passive: false
                    },
                    files: [
                        { expand: true, cwd: './tmp', src: ['fixed_report_count.txt'], dest: '/data/' }
                    ]
                }
            },
    
            shell: {
                exportFixRateData: {
                    command: '../WebService/DbAdmin.exe -e tmp/fixed_report_count.txt',
                    options: {
                        async: false,
                        stdout: true
                    }
                }
            },
    
            less: {
                dev: {
                    options: {
                        paths: ["../WebSite/public/less"]
                    },
                    files: [
                        { "../WebSite/public/css/site.css": "../WebSite/public/less/site.less" },
                        { "../WebSite/public/css/page_send_report.css": "../WebSite/public/less/page_send_report.less" },
                        { "../WebSite/public/css/page_data_mining.css": "../WebSite/public/less/page_data_mining.less" },
                        { "../WebSite/public/css/page_bucket_table.css": "../WebSite/public/less/page_bucket_table.less" }
                    ]
                },
                prod: {
                    options: {
                        paths: ["../WebSite/public/less"],
                        yuicompress: true
                    },
                    files: [
                        { "../WebSite/public/css/site.css": "../WebSite/public/less/site.less" },
                        { "../WebSite/public/css/page_send_report.css": "../WebSite/public/less/page_send_report.less" },
                        { "../WebSite/public/css/page_data_mining.css": "../WebSite/public/less/page_data_mining.less" },
                        { "../WebSite/public/css/page_bucket_table.css": "../WebSite/public/less/page_bucket_table.less" }
                    ]
                }
            },
    
            mochacli: {
                options: {
                    //require: ['should'],
                    files: '../Test/test/*.js'
                },
                spec: {
                    options: {
                        reporter: 'spec'
                    }
                },
                "default": {
                }
            }
        });
    
        require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
    
        // Backup and Restore
        grunt.registerTask(
            "backup_fix_rate_data",
            "upload exported fix rate data to backup server",
            ["shell:exportFixRateData", "ftpscript:uploadFixRateData"]);
    
        // Build Compile
        //
        grunt.registerTask(
            "dev",
            "Compile and make",
            ["less:dev"]);
    
        grunt.registerTask(
            "prod",
            "Compile and release",
            ["less:prod"]);
    
        grunt.registerTask(
            "ut",
            "Run Mocha Unit Test",
            ['mochacli:default']);
    
        grunt.registerTask(
            "spec",
            "Run Mocha Unit Test",
            ['mochacli:spec']);
    
    };

    其中定义了一个备份的task,但是我希望每周一执行他,怎么办呢?用Cron库:

    var exec = require('child_process').exec;
    var cronJob = require('cron').CronJob;
    var schedule = require('node-schedule');
    
    function _runGruntTask(taskName) {
        exec("grunt " + taskName, function (error, stdout, stderr) {
    
            if (stdout) console.log(stdout);
            if (stderr) console.log('stderr: ' + stderr);
            if (error !== null) {
                console.log('exec error: ' + error);
            }
        });
    }
    
    // You can generate the cron pattern in:
    // http://www.becron.com/
    //
    new cronJob({
        desc: 'Backup Fix Rate Data File in every Monday 2:30 A.M.',
        cronTime: '0 30 2 * * 1',
        onTick: function() {
            _runGruntTask('backup_fix_rate_data');
        }
    }).start();
    

    就这么简单~

  • 相关阅读:
    写简单游戏,学编程语言-python篇
    RSS阅读器python实现概述
    python简易爬虫来实现自动图片下载
    SQL SERVER 2008 R2 SP3 发布
    动态规划问题总结 (转载)
    typedef with const 联合的说明
    C++ 初始化列表
    C++de构造函数
    排序算法温习
    java中读取properties配置文件用例
  • 原文地址:https://www.cnblogs.com/puncha/p/3876877.html
Copyright © 2011-2022 走看看