tutorial tan seguro que nodebeginner node introduccion framework español caracteristicas javascript gruntjs yeoman

javascript - tan - Yeoman usará el servidor del motor de la aplicación google



nodebeginner español (2)

Configuro Yeoman 1.0 beta para manejar mis tareas de js / css. Todo funciona bien, si ejecuto el grunt server , se inicia un servidor estático y se conecta una sesión del navegador al puerto 9000 (livereload). js / css concat, minification también están funcionando.

Ahora, ¿hay alguna manera de hacerlo para conectarme a un servidor de desarrollo de motores de aplicaciones de Google (en lugar de iniciar un servidor estático)? El servidor se está ejecutando en el puerto 8080 en localhost, y quiero que gruñido vuelva a cargar la página web en archivos css / js bajo observación. Estos archivos serían servidos por el servidor GAE.

Veo una sección rolling your own en la documentación de grudo-contrib-connect , pero no estoy seguro de que signifique un servidor externo. Por lo que veo, esta es la configuración relavent de Gruntfile.js

connect: { livereload: { options: { port: 8080, //*** was 9001 originally ** middleware: function (connect) { return [ lrSnippet, mountFolder(connect, ''.tmp''), mountFolder(connect, yeomanConfig.app) ]; } } },

Cuando cambio el número de puerto a 8080, y trato de iniciar, obviamente da error.

Error fatal: el puerto 8080 ya está siendo utilizado por otro proceso.

por lo tanto, no quiero iniciar un nuevo servidor, sino conectarme a través del servidor GAE que ya se está ejecutando.

Gracias.



Para utilizar el servidor GAE en lugar del servidor nodejs, debemos hacer lo siguiente.
* Compile su less / coffeescript, concat [, minify], copie su código en la ubicación donde reside el código del motor de la aplicación.
* Crea una tarea en grunt.js para generar un comando de shell para ejecutar el motor de la aplicación.

Este es el ejemplo, que utilicé como referencia. https://github.com/cowboy/grunt/tree/master/tasks

¡Seguir el archivo grunt.js puede ayudar!

module.exports = function(grunt) { grunt.initConfig({ .... }); grunt.registerTask(''appengine-update'', ''Upload to App Engine.'', function() { var spawn = require(''child_process'').spawn; var PIPE = {stdio: ''inherit''}; var done = this.async(); spawn(''appcfg.py'', [''update'', ''build/task-manager-angular''], PIPE).on(''exit'', function(status) { done(status === 0); }); }); grunt.registerTask(''clean'', ''Clean the whole build directory.'', function() { require(''child_process'').exec(''rm -rdf build'', this.async()); }); grunt.registerTask(''run'', ''Run app server.'', function() { var spawn = require(''child_process'').spawn; var PIPE = {stdio: ''inherit''}; var done = this.async(); spawn(''dev_appserver.py'', [''.''], PIPE).on(''exit'', function(status) { done(status === 0); }); }); }); //.... //Other settings //.... grunt.loadTasks(''tasks''); grunt.loadNpmTasks(''grunt-coffeelint''); grunt.registerTask(''build'', ''coffee less concat''); grunt.registerTask(''deploy'', ''coffee less concat build appengine-update''); grunt.registerTask(''default'', ''coffee less''); };