Bernardo Martín
UI Developer | CSS & Animation Developer | Frontend Developer
npm install -g grunt-cli
npm init
Rellenaremos los datos que nos piden sobre nuestro proyecto y al finalizar tendremos creado ya el archivo.
Si estamos trabajando ya con bower ya estará creado. Si no sabes cómo usar bower y dependencias Bower
npm install grunt --save -dev
module.exports = function(grunt) {
// Configuración de Grunt.js
};
grunt.initConfig({
// Configuración para proyectos y tareas.
});
// Cargar la tarea grunt-contrib-uglify
grunt.loadNpmTasks('grunt-contrib-uglify');
// Tarea por defecto.
grunt.registerTask('default', ['uglify']);
Este método tiene 2 parámetros:
El nombre que queremos ponerle a la tarea y con este mismo nombre podremos acceder a ejecutar la tarea por ejemplo:
grunt default
2. El segundo parámetro es un Array de nombres de tareas, donde podemos agregar una o más tareas, como podemos ver en el siguiente ejemplo.
grunt.registerTask('default', ['js', 'uglify']);
En este ejemplo vemos que se registró la tarea llamada default y dentro de esta tarea se ejecutarán en el orden indicado las siguientes tareas: js y uglify.
1.Instalar el plugin desde consola.
npm install grunt-contrib-uglify --save-dev
se actualizará el archivo package.json con la nueva dependencia.
2.Cargar la tarea en el archivo Gruntfile.js.
Abrimos el archivo Gruntfile.js y añadimos:
grunt.loadNpmTasks('grunt-contrib-uglify');
3.Configurar la tarea también desde Gruntfile.js
Este paso será personalizado para cada tarea y lo ideal es consultar la documentación de cada plugin que suele estar incluida en GitHub. Aquí podrá encontrar la documentación
3.Configurar la tarea también desde Gruntfile.js
module.exports = function(grunt) { grunt.initConfig({ uglify: { my_target: { files: { '_/js/scripts.min.js': ['_/components/js/vendor/*.js','_/components/js/scripts.js'] } } //my_target } //uglify }); grunt.loadNpmTasks('grunt-contrib-uglify'); };
3.Configurar la tarea también desde Gruntfile.js
Escribimos por consola en la carpeta donde está gruntfile.js
grunt uglify:my_target
Se habrá creado un archivo nuevo dentro de la carpeta /_/js/ llamado scripts_min.js.
3.Configurar la tarea también desde Gruntfile.js
Otra forma de codificar este plugin podría ser (Como vemos es muy importante leer la documentación del plugin)
module.exports = function (grunt) {
grunt.initConfig({
uglify: {
options: {
mangle: false,compress: {
drop_console: true
}
},
js: {
files: [{
cwd: 'js/src/',expand: true,src: '*.js',dest: 'js/min/'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('default', ['uglify']);
};
Con esto solo tenemos que ingresar por medio del terminal a nuestra carpeta donde esta alojado el Gruntfile.js y ejecutar la tarea registrada.
grunt default
Al ejecutar la tarea, Grunt.js minificará los archivos *.js que se encuentren en la carpeta js/src/ y pondrá el resultado en la carpeta js/min/.
grunt.loadNpmTasks('grunt-contrib-watch'); --> para vigilar cambios
grunt.loadNpmTasks('grunt-contrib-imagemin'); --> minificar el tamaño de las imagenes
grunt.loadNpmTasks('grunt-autoprefixer') --> añadir o quitar vendor prefixes
grunt.loadNpmTasks('grunt-contrib-cssmin'); --> minificar el tamaños de archivo css
grunt.loadNpmTasks('grunt-browser-sync') ; --> sincronizar en el navegador y otros dispositivos
Agradecer a las siguientes webs donde consulté documentación:
https://bermartinv.github.io/css/files/taller/menu_taller.html
By Bernardo Martín
UI Developer | CSS & Animation Developer | Frontend Developer