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:
- 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.