¿Cómo despliegue una aplicación Angular.js?

Esta puede ser una pregunta estúpida, pero me pregunto qué plataforma debería usar para implementar mi aplicación Angular.js. Intenté usar Heroku pero obtuve el error “no se detectó ninguna aplicación compatible con Cedar”. ¿Alguna idea?

ACTUALIZAR

Estoy tratando de servir esto a heorku como una aplicación Node.js, pero todavía parece que no puedo hacerlo funcionar. Hay un archivo web-server.js en el directorio raíz de mi aplicación y lo remito en mi Procfile aquí:

web: node web-server.js 

Y aquí está mi archivo package.json, también en el directorio raíz:

 { "name": "medicare-data", "version": "0.0.1", "dependencies": { }, "engines": { "node": "0.10.x", "npm": "1.2.x" }, "respository": "medicare-data", "author": "sararob" } 

Estoy obteniendo un “error de comstackción de slug” en mis registros de heroku. ¿Pensamientos sobre por qué esto podría no estar funcionando?

Puede ejecutar una aplicación Angular en heroku si se sirve como una aplicación node.js. Por lo general, cuando comienza a trabajar con Angular Seed, ya existe un script de servidor web de nodo en el proyecto. Creo que si hay un archivo package.json en la raíz, heroku lo detectará y lo ejecutará como una aplicación node.js. Volveré y actualizaré esta respuesta con más detalle en breve.

ACTUALIZAR

De los documentos de Heroku (y no soy un experto), tiene este pasaje después de la sección de implementación: https://devcenter.heroku.com/articles/nodejs#visit-your-application

que básicamente te dice que te asegures de tener un dinamómetro en funcionamiento. Puede hacerlo a través de la aplicación web en la configuración de su aplicación o puede ejecutar esto:

 $ heroku ps:scale web=1 

Para ver si el proceso se está ejecutando, haga

 $ heroku ps === web: `node web.js` web.1: up for 10s 

Apuesto que si miras tus registros verás algo como esto:

 2013-08-26T12:51:18.257006+00:00 heroku[web.1]: Starting process with command `node scripts/web-server.js` 2013-08-26T12:51:19.109974+00:00 app[web.1]: Http Server running at http://localhost:8000/ 2013-08-26T12:51:34.369092+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path=/ host=cmwidget.herokuapp.com fwd="77.101.66.230" dyno= connect= service= status=503 bytes= 2013-08-26T12:52:19.445974+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 

Significa que su aplicación de semillas angulares está utilizando su propio puerto (8000), y Heroku no lo permite. Debes renunciar a la asignación del número de puerto a Heroku.

Se arregla fácilmente. Modifique scripts/web-server.js , y cambie esto:

 this.server.listen(port); 

…a esto:

 this.server.listen(process.env.PORT || port); 

Cambié esta línea var DEFAULT_PORT = 8000; en: var DEFAULT_PORT = process.env.PORT || 8000;

..y luego funcionó. Así que creo que la razón es que a heroku no le gusta que su aplicación se ejecute en el puerto 8000.