uglify tutorial grunt files gruntjs

gruntjs - tutorial - grunt uglify



Parámetros de línea de comando de Grunt (4)

Tengo un archivo de compilación Grunt. Mi archivo de compilación tiene una tarea que se parece a la siguiente:

myTask: { options: { configFile: "config/default.js", args: { } }, dev: { configFile: ''config/local.js'', options: { args: {} }, }, test: { configFile: ''config/remote.js'', options: { args: {} } } }

...

grunt.registerTask(''customTask'', [''myTask:dev'']); grunt.registerTask(''customTask-Test'', [''myTask:test'']);

Actualmente, puedo ejecutar lo siguiente desde la línea de comando:

> grunt customTask

Todo funciona bien. Sin embargo, necesito agregar la capacidad de hacer algo como esto:

> grunt customTask --myParam=myValue

Necesito ver el valor de myParam en mi objetivo de tarea "dev". Sin embargo, no puedo averiguar cómo hacerlo. Me alegraría si pudiera imprimir el valor de myParam cuando se ejecuta myTask: dev. En otras palabras, me gustaría ver lo siguiente cuando corro

> grunt customTask > grunt customTask --myParam=hello You entered hello > grunt customTask-Test > grunt customTask-Test --myParam=hello

¿Cómo hago algo como esto?


Hice un ejemplo de uso, donde puedo pasar el módulo donde quiero que se cree mi css.min a través de esta línea de comando:

> grunt cssmin --target=my_module

Gruntfile.js

module.exports = function(grunt) { var module = grunt.option(''target''); //get value of target, my_module var cssminPath = ''assets/'' + module + ''/css/all.css''; grunt.initConfig({ pkg: grunt.file.readJSON(''package.json''), cssmin:{ css: { files: [{ src: [ ''bower_components/bootstrap/dist/css/bootstrap.min.css'', ], dest: cssminPath }] } }, }); grunt.loadNpmTasks(''grunt-contrib-cssmin''); grunt.registerTask(''default'', [''cssmin'']); }


También puede usar la matriz process.argv leer los argumentos de la línea de comandos de grunt

var args = process.argv; runScript(args[2], args[3]);

El primer y segundo argumento son el comando de node y el nombre del script.

execute: { target: { options: { args : [arg1, arg2] }, src: [''script.js''] } }

utilizando grunt-execute


Todo esto se explica en la página grunt.option .

En su caso, podría obtener el valor de myParam con:

var target = grunt.option(''myParam'');


Una forma alternativa: puede utilizar la matriz process.argv , al igual que puede hacerlo en una aplicación Node normal.

GruntJS, por supuesto, se basa en NodeJS.

Utilicé esta técnica para reenviar mis argumentos de línea de comandos de Grunt a mi proceso de Nodo, a los que llamó grunt-nodemon .