loading gruntjs watch

loading - gruñir cargas más rápidas



gruntjs watch (5)

Si su grunt está en una caja virtual Vagrant, puede sincronizar a través de nfs, que es un poco más rápido que el intercambio predeterminado. (pero aún mucho más lento que un sistema de archivos nativo)

En tu Vagrantfile:

config.vm.synced_folder ".", "/vagrant", type: "nfs"

En mi máquina, es hora de cargar las tareas (con ssd):

native: ~1s nfs: ~4s default Vagrant sharing: ~16s

¿Hay alguien que pueda decirme cómo hacer que las tareas grupales se carguen más rápido? Realmente quiero reducir el tiempo de carga, porque la mayoría de las tareas requieren 1 segundo para cargar.

Especialmente para tareas de ''observación''. cuando estoy buscando cambios, realmente quiero compilar sass mucho más rápido.

¿Algunas ideas?

Gracias


Parece que su computadora es el problema aquí, no tendrá muchas opciones, pero para actualizar.

Lo único que se me ocurre es tareas concurrentes, si puede ejecutar las tareas simultáneamente, puede ahorrar algo de tiempo libre.

Puede usar grunt-concurrent como se dice en el repositorio:

Ejecutar tareas lentas como Coffee y Sass al mismo tiempo puede mejorar significativamente el tiempo de construcción. Esta tarea también es útil si necesita ejecutar múltiples tareas de bloqueo como nodemon y mirar a la vez, como se ve en la configuración de ejemplo.

También puede cargar las tareas solo cuando sea necesario con este truco .


Realmente estás buscando esto: jit-gruñido .

En lugar de cargar todas las tareas todas las veces, jit-grunt solo cargará aquellas que sean necesarias.


Tenía el mismo problema que el OP: ronco reloj fue muy lento para compilar archivos .less y liveReload así que esto es lo que hice:

  1. instale time-grunt para mostrar los tiempos de ejecución para cada tarea:

    $ npm install --save-dev time-grunt

    y luego coloque esta línea justo después de module-exports:

    module.exports = function(grunt) { require(''time-grunt'')(grunt);

    Después de ejecutar gruñir, notará qué tareas llevó más tiempo que otras. En mi caso, estaba cargando todas las dependencias en cada cambio de archivo, así que encontré esta solución:

  2. instale jit-grunt para cargar dependencias a demanda en lugar de cargarlas todas cada vez que grunt realiza una tarea.

    $ npm install jit-grunt --save-dev

    y reemplace el cargador inicial en el gruntfile

    require(''load-grunt-tasks'')(grunt);

    con

    require(''jit-grunt'')(grunt);

Esto me ahorró tiempo de carga en vivo para actualizaciones .css de ~ 1600ms a ~ 250ms.

PD: @curist también sugirió jit -gruñido , pero pensé que más detalles podrían ayudar a cualquiera.


El mismo problema aquí, después de cambiar y ejecutar la tarea, todos los módulos fueron recargados.

Pero encontré una muy buena solución en github ( https://github.com/steida/grunt-este-watch )

¿Qué pasa con el gruñido oficial contrib-watch?

Es lento y con errores, porque usa la combinación fs.fileWatch y fs.watch, por razones históricas. Desde el nodo 0.9.2+, fs.watch está bien.

¿Qué hacer?

  1. instalar grunt-este-watch

    npm install grunt-este-watch --save-dev

  2. cambiar el reloj contrib

    grunt.loadNpmTasks(''grunt-contrib-watch'');

    a este reloj

    grunt.loadNpmTasks(''grunt-este-watch'');

  3. cambiar la tarea

    watch: { javascript: { files: ''src/js/**/*'', tasks: [''uglify''] } }

    a

    esteWatch: { options: { dirs: [''../src/**/*''] }, ''js'': function(filepath) { return ''uglify'' } }