通过命令行更改Grunt配置变量

im_*_*ton 2 javascript command-line-interface gruntjs

我有两个不同的路径,我想编译移动与桌面代码.我想通过在命令行中传递一个grunt参数来交替.

/**
 * @module Build
 * @class Build.Config
 * @static
 */

module.exports = function(grunt) {

var config = {};

    var NewPath;

    var env = grunt.option('target') || "Mobile";


    if (env == "Desktop") {  // MAKE THIS DYNAMIC WITH COMMAND LINE ARGUMENT
        newPath = "source/desktop/";
    }
    else {
       newPath = "source/mobile/";
    }

config.root = newPath;
config.stylesheets = config.root + '/stylesheets';
config.javascripts = config.root + '/javascripts';
config.images = config.root + '/images';
config.jsbin = config.javascripts + '/generated';
config.cssbin = config.stylesheets + '/generated';
config.docsbin = 'docs';



// Project configuration.
grunt.initConfig({

    'beautifier': {
        'options': {
            'indentSize': 1,
            'indentChar': '\t',
            'spaceAfterAnonFunction': true
        }
    },

    'beautify': {
        'files': [ config.javascripts + '/app/**/*.js' ]
    },

    'requirejs': require('./build/config/requirejs.js')(config),

    'watch': require('./build/config/watch.js')(config),
    'stylus':require('./build/config/stylus.js')(config)

});


// Default task.
grunt.registerTask('default', ['stylus:compile','requirejs']);      
grunt.registerTask('dev', ['stylus:dev']);

grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-requirejs');
grunt.loadNpmTasks('grunt-contrib-stylus');
};
Run Code Online (Sandbox Code Playgroud)

im_*_*ton 5

事实证明我做得对,我只需要正确传递env的变量:

$ grunt --target ="桌面"