node.js - significado - yeoman webapp
Yeoman for Angular, luego "gruñir servir" no comenzará (3)
Esta es la primera vez que uso yeoman para configurar el andamio para una aplicación AngularJS, y tengo que admitir que probablemente sea nuevo en el mundo nodeJS, grunt y bower.
Entonces, esto es lo que hice hasta ahora:
Me aseguré de que los paquetes yeoman, grunt-cli y el generador angular estén instalados
npm install -g yo grunt-cli bower npm install -g generator-angular
Generado mi aplicación
yo angular
También probé:
yo angular --min-safe
Hasta ahora, todo parece bueno. Entre las opciones dadas, elijo el de Twitter Bootstrap, sin dependencias angulares, y sobrescribir mi archivo local .gitignore.
Después de todo eso, intento ejecutar mi aplicación:
grunt serve
En este punto, grunt se queja de que no está instalado localmente en el proyecto, así que ejecuto:
npm install grunt --save-dev
No otra vez, tratando de ejecutar la aplicación:
grunt serve
Y aquí es donde me bloquean:
C:/Projects/what-now>grunt serve
Running "serve" task
Running "clean:server" (clean) task
Running "concurrent:server" (concurrent) task
Running "copy:styles" (copy) task
Done, without errors.
Warning:
C:/Projects/what-now/node_modules/grunt-contrib-compass/node_modules/tmp/lib/tmp.js:261
throw err;
^
TypeError: Cannot read property ''stdout'' of undefined
at compile (C:/Projects/what-now/node_modules/grunt-contrib-compass/tasks/compass.js:37:10)
at C:/Projects/what-now/node_modules/grunt-contrib-compass/tasks/compass.js:68:7
at C:/Projects/what-now/node_modules/grunt-contrib-compass/tasks/lib/compass.js:121:11
at _fileCreated (C:/Projects/what-now/node_modules/grunt-contrib-compass/node_modules/tmp/lib/tmp.js:172:7)
at C:/Projects/what-now/node_modules/grunt-google-cdn/node_modules/bower/node_modules/rimraf/node_modules/graceful-fs/graceful-fs.js:53:5
at C:/Projects/what-now/node_modules/grunt-google-cdn/node_modules/bower/node_modules/rimraf/node_modules/graceful-fs/graceful-fs.js:62:5
at OpenReq.Req.done (C:/Projects/what-now/node_modules/grunt-google-cdn/node_modules/bower/node_modules/fstream/node_modules/graceful-fs/graceful-fs.js:142:5)
at OpenReq.done (C:/Projects/what-now/node_modules/grunt-google-cdn/node_modules/bower/node_modules/fstream/node_modules/graceful-fs/graceful-fs.js:64:22)
//... stack trace continues ...
Mirando el código que explota en el método de compilación de brújula, lo que encuentro es lo siguiente:
child.stdout.pipe(process.stdout);
Esto me hace pensar que el child
no está definido por algún motivo, y esta variable proviene de una llamada a grunt.util.spawn
. Aquí es donde estoy perdido.
¿Me estoy perdiendo alguna dependencia? ¿Me falta alguna configuración?
Información:
- Sistema operativo: Windows 8 x64
- nodo: v0.10.22
En Windows tuve algunas instalaciones de ruby:
C:/ruby187
y
C:/Ruby200-x64
instalar brújula en ambos lugares, utilizando:
gem install compass
esto resuelve mi problema en Windows 8 64 bits
Siguiendo el mismo procedimiento para Ember, corriendo gruñido. Recibió el error "TypeError: no se puede leer la propiedad ''stdout'' de undefined". La brújula de instalación de gem (Ruby ya había sido instalada en mi Windows 7 de 64 bits), aunque se suponía que la brújula debía instalarse antes y funcionó. Ran gruñido y gruñido sirven sin problemas.
* suspira *, lo siento.
Todo lo que necesité fue escribir esta pregunta para luego darme cuenta de que necesitaba haber instalado Ruby y la gema de la brújula. Ahora tiene sentido: el proceso de compilación no se generará.
Después de instalar Ruby, ejecuta:
gem install compass
Y deberías ser bueno para ir.
EDITAR: Después de instalar Ruby, debe asegurarse de que la ruta de los archivos de tiempo de ejecución de ruby se agregue a su variable PATH. (Gracias JagWire!)