• 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();
    

    就这么简单~

  • 相关阅读:
    MetaWeblog API
    序列化Hashtable
    贴几个CodeDOM的链接
    Summing it all up: 35 blog entries in 2 days from the BCL Team [Kit George] --from BCLTeam's Weblog
    上海在下尘土
    PSP升级速度令然惊喜!(update:2007.10.13)
    Linkin Park林肯公园上海演唱会(2007年11月18日)
    STARCRAFT2 / 星际争霸2
    Enterprise Library 3.0 April 2007
    《The Devil Wears Prada / 穿布拉达的女王》很有意思.
  • 原文地址:https://www.cnblogs.com/puncha/p/3876877.html
Copyright © 2020-2023  润新知