javascript node.js gruntjs grunt-usemin

javascript - Cómo usar mis propias configuraciones de opciones para concat y uglify con grunt-usemin



node.js gruntjs (1)

Una oración es muy importante en la documentación:

Además, useminPrepare genera dinámicamente la configuración para concat, uglify y cssmin. Importante: aún necesita administrar manualmente estas dependencias y llamar a cada tarea.

El principio es declarar solo que desea usar usemin (en la tarea de registro de grunt) con toda la tarea principal que desee: concat, uglify ... Usemin creará todas estas tareas de forma predeterminada sin ninguna declaración, en función de sus opciones de registro y comentarios de marcado html.

El código es mejor que las palabras:

  1. Exprese sus archivos de destino de marcado de bloque. En tu caso, algo así como:

<!-- build:js js/app.min.js --> <script src="js/app.js"></script> <script src="js/controllers/thing-controller.js"></script> <script src="js/models/thing-model.js"></script> <script src="js/views/thing-view.js"></script> <!-- endbuild -->

2 - Registre las tareas que quiere que usemin genere para usted durante el tiempo de ejecución (no genera nada en su archivo, algo que debe precisarse en la documentación). Por ejemplo :

grunt.registerTask (''minify'', [''useminPrepare'', ''concat'', ''cssmin'', ''uglify'', ''copy''
, ''rev'', usemin ''])

3 - De forma predeterminada, todas estas tareas se generan, excepto useminPrepare y usemin (consulte la documentación de estos 2 bloques grunt-usemin ).

Luego, si desea agregar opciones específicas como el mapa de origen, solo vuelva a escribir el código de configuración sin redefinir todo:

uglify: {options: {sourceMap: false}}

Espero eso ayude.

Por ejemplo: estoy usando la configuración actual a continuación para uglify mis scripts JS en mi Gruntfile:

uglify: { options: { report: "min", //"gzip", sourceMap: true, preserveComments: false, //"some", "all" }, application: { options: { // expand: true, banner: ''<%= app.banner %>'', preserveComments: "some" }, src: ''dist/js/application.js'', dest: ".tmp/js/application.min.js" }, dependencies: { options: { sourceMap: false }, src: [''dist/js/dependencies.js''], dest: ".tmp/js/dependencies.min.js" },

Soy consciente de que grunt-usemin genera las opciones src y dest del bloque de código en el archivo html declarado en la opción useminPrepare gruntfile, por ejemplo:

<!-- build:js js/app.js --> <script src="js/app.js"></script> <script src="js/controllers/thing-controller.js"></script> <script src="js/models/thing-model.js"></script> <script src="js/views/thing-view.js"></script> <!-- endbuild -->

Entonces, ¿cómo puedo configurar grunt-usemin para usar estas mismas opciones, como banner , sourceMap: false con los bloques de archivos generados, he leído la documentación rápida que usualmente se da en github o el registro de NPM pero parece no encontrar una respuesta sólida a esto.