tutorial serve que node instalar grunt framework con compilar node.js gruntjs

node.js - serve - que es gulp



¿Cuál es el propósito de la tarea del servidor de gruntjs? (3)

Estoy aprendiendo cómo impulsar el uso de gruntjs. Encontré la tarea del servidor pero no entiendo el punto.

¿Puedo usar la tarea del servidor asignando archivos concatenados / minificados para probar mi aplicación (usa backbone.js) sin mover o colocar archivos fuente en la raíz del servidor web? Sin apache por ejemplo.

Si no, ¿cuál es el supuesto uso de la tarea del servidor?


La tarea del server ahora es la tarea de connect y está incluida en el paquete grunt-contrib-connect .

La tarea de connect inicia un servidor web de conexión.

Instale este complemento con este comando:

npm install grunt-contrib-connect --save-dev

Nota: --save-dev incluye el paquete en sus devDependencies , consulte https://npmjs.org/doc/install.html

Una vez que se ha instalado el complemento, puede habilitarse dentro de Gruntfile con esta línea de JavaScript:

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

Ejecute esta tarea con el comando grunt connect .

Tenga en cuenta que este servidor solo se ejecuta mientras se ejecuta roncado. Una vez que las tareas de gruñido se han completado, el servidor web se detiene. Este comportamiento se puede cambiar con la opción keepalive y se puede habilitar ad-hoc ejecutando la tarea como grunt connect:targetname:keepalive . targetname es igual a "servidor" en el siguiente ejemplo de código.

En este ejemplo, grunt connect (o más ampliamente, grunt connect:server ) iniciará un servidor web estático en http://localhost:9001/ , con su ruta base establecida en el directorio www-root relativo al Gruntfile, y cualquier las tareas que se ejecuten posteriormente podrán acceder a él.

// Project configuration. grunt.initConfig({ connect: { server: { options: { port: 9001, base: ''www-root'' } } } });


El objetivo de la tarea del servidor es tener acceso rápido y sucio a los archivos estáticos para la prueba. El servidor de grunts NO ES un entorno de servidor de producción. Realmente solo debería usarse durante el ciclo de vida del grunt para obtener activos de prueba estáticos para el entorno de prueba. Utilice un servidor completo, posiblemente controlado por las secuencias de comandos del ciclo de vida de NPM, para entornos de producción.


La tarea del server se utiliza para iniciar un servidor estático con la ruta base establecida como la raíz web.

Ejemplo: Servir ./web-root como http://localhost:8080/ :

grunt.initConfig({ server: { port: 8080, base: ''./web-root'' } });

Funcionará de manera similar a un servidor Apache, que sirve archivos estáticos en función de su ruta, pero utiliza el módulo http a través de la conexión para configurarlo ( fuente ).

Si necesita que sirva más que solo archivos estáticos, querrá considerar la definición de una tarea de server personalizada :

grunt.registerTask(''server'', ''Start a custom web server.'', function() { grunt.log.writeln(''Starting web server on port 1234.''); require(''./server.js'').listen(1234); });

Y instancia de servidor personalizado:

// server.js var http = require(''http''); module.exports = http.createServer(function (req, res) { // ... });

¿Puedo usar la tarea del servidor asignando archivos concatenados / minificados para probar mi aplicación [...]

La concatenación y la minificación tienen sus propias tareas dedicadas, concat y min , pero podrían usarse junto con una tarea de server para lograr las 3.

Editar

Si desea que persista en el servidor por un tiempo (además de gruñir), podría definir la tarea como asincrónica (con el evento ''close'' del servidor):

grunt.registerTask(''server'', ''Start a custom web server.'', function() { var done = this.async(); grunt.log.writeln(''Starting web server on port 1234.''); require(''./server.js'').listen(1234).on(''close'', done); });