Diferencia entre MEAN.js y MEAN.io

335

Quería usar MEAN JavaScript Stack, pero noté que hay dos pilas diferentes con su propio sitio web y métodos de instalación: mean.js y mean.io. Entonces se me ocurrió esta pregunta: "¿Cuál uso?".

Entonces, para responder a esta pregunta, le pregunto a la comunidad si podría explicar cuáles son las diferencias entre estos dos. ¿Y si es posible pros y contras? Porque se parecen mucho a mí.

CMPSoares
fuente
55
Elegir entre MEAN.io y MEAN.js puede ser un punto discutible ahora que Meteor ha lanzado 1.0 y ofrece mucho más fuera de la caja .
Dan Dascalescu

Respuestas:

374

Son esencialmente lo mismo ... Ambos usan swig para crear plantillas, ambos usan karma y mocha para pruebas, integración de pasaportes, nodemon, etc.

¿Por qué tan similar? Mean.js es una bifurcación de Mean.io y ambas iniciativas fueron iniciadas por el mismo tipo ... Mean.io ahora está bajo el paraguas de la compañía Linnovate y parece que el tipo (Amos Haviv) detuvo su colaboración con esta compañía y comenzó Mean.js. Puedes leer más sobre las razones aquí .

Ahora ... las principales (o pequeñas) diferencias que puede ver en este momento son:


ANDAMIO Y GENERACIÓN DE PLACA

Mean.io usa una herramienta de cli personalizada llamada 'mean'
Mean.js usa Yeoman Generators


MODULARIDAD

Mean.io utiliza una modularidad de paquetes de nodos más autónoma con archivos de cliente y servidor dentro de los módulos.
Mean.js usa módulos justo en el front-end (para angular) y los conecta con Express. Aunque también estaban trabajando en módulos verticales ...


CONSTRUIR SISTEMA

Mean.io se mudó recientemente a tragar
Mean.js usa gruñido


DESPLIEGUE

Ambos tienen Dockerfiles en sus respectivos repositorios, y Mean.io tiene instalación con un clic en Google Compute Engine , mientras que Mean.js también se puede implementar con la instalación con un clic en Digital Ocean .


DOCUMENTACIÓN

Mean.io tiene documentos bien.
Mean.js tiene documentos IMPRESIONANTES


COMUNIDAD

Mean.io tiene una comunidad más grande ya que era la versión original
Mean.js tiene menos impulso pero un crecimiento constante


A nivel personal, me gusta más la filosofía y la apertura de MeanJS y más el enfoque de tracción y módulos / paquetes de MeanIO. Ambos son buenos, y probablemente terminarás modificándolos, por lo que no puedes equivocarte al elegir uno u otro. Solo tómalos como punto de partida y como ejercicio de aprendizaje.


SOLUCIONES ALTERNATIVAS "MEDIAS"

MEAN es una forma genérica (acuñada por Valeri Karpov ) para describir una estructura repetitiva / marco que toma "Mongo + Express + Angular + Node" como la base de la pila. Puede encontrar marcos con esta pila que usan otra denominación, algunos de ellos realmente buenos para RAD (Desarrollo rápido de aplicaciones) y para construir SPA. P.ej:

También tienes Hackathon Starter . No tiene A de MEAN (es 'HOMBRES'), pero es genial ...

¡Que te diviertas!

joseldn
fuente
55
Hola, gracias por la respuesta! ¡El hackathon-starter se ve increíble! Se ve más por lo que estoy buscando. También es principalmente JS y tiene las autenticaciones ya implementadas y eso fue lo que pensé que sería la parte más difícil ... Todos pensaron que todavía siento que no conozco todas mis opciones ...: - / También surgió más tarde, Cómo hackathon-starter tiene un generador de andamios y repetitivo? Pero aún así, ¡muchas gracias por tu increíble respuesta!
CMPSoares
77
De nada. Sí, lo que también me gusta de hackathon-starter es la gestión completa de la cuenta y el flujo de trabajo (olvidé mi contraseña, correo electrónico de confirmación, etc.) y la integración con sendgrid, paypal, etc ... Cosas que MEAN.js y MEAN.io no tienen. Es un buen comienzo para ciertos proyectos amables.
joseldn
1
Sin duda, es un buen punto de partida para proyectos si no necesita angular. No te preocupes por las otras partes de la plataforma. Lo más probable es que encuentre paquetes de nodos plug & play que hacen exactamente eso ... Es decir: gist.github.com/facultymatt/6370903 para roles
joseldn
1
Una buena situación sería usarlo con SOA donde consumas una API REST. Si tienes un horario apretado, entonces baja angular. La curva de aprendizaje es bastante empinada ... Es un "agradable tener" para el front-end, pero no es un componente crítico. Siempre puede aprenderlo en paralelo y usarlo en su próximo proyecto o conectarlo más tarde a este.
joseldn
2
¡Hola chicos! He encontrado algo que deriva de hackathon-motor de arranque, pero también muy agradable: el esqueleto ! ;-)
CMPSoares
66

En primer lugar, MEAN es un acrónimo de M ongoDB, E xpress, A ngular y N ode.js.

Se forma genérica identifica el uso combinado de estas tecnologías en una "pila". No existe tal cosa como " El marco MEAN".

Lior Kesos en Linnovate aprovechó esta confusión. Compró el dominio MEAN.io y puso un código en https://github.com/linnovate/mean

Afortunadamente recibieron mucha publicidad, y cada vez hay más artículos y videos sobre MEAN. Cuando buscas en Google "mean framework", mean.io es el primero de la lista.

Lamentablemente, el código en https://github.com/linnovate/mean parece estar mal diseñado .

En febrero caí en la trampa yo mismo. El sitio mean.io tenía un diseño pegadizo y el repositorio de Github tenía más de 1000 estrellas. La idea de cuestionar la calidad ni siquiera pasó por mi mente. Comencé a experimentar con él, pero no me llevó mucho tiempo tropezar con cosas que no funcionaban y desconcertar piezas de código.

El historial de confirmaciones también fue bastante preocupante. Rediseñaron el código y la estructura del directorio varias veces, y fusionar los nuevos cambios lleva demasiado tiempo.

Lo bueno de ambos códigos mean.io y mean.js es que vienen con la integración Bootstrap. También vienen con Facebook, Github, Linkedin, etc.a través de PassportJs y un ejemplo de un modelo (artículo) en el backend en MongoDB que se sincroniza con el modelo frontend con AngularJS.

Según el sitio web de Linnovate:

Linnovate es la compañía líder de código abierto en Israel, con el equipo más experimentado del país, dedicado a la creación de soluciones de código abierto de alta gama. Linnovate es la única compañía en Israel que brinda servicios de AZ a las empresas para construir y mantener su próximo proyecto web.

Desde el sitio web parece que su conjunto de habilidades principales es Drupal (un sistema de gestión de contenido PHP) y solo recientemente comenzaron a usar Node.js y AngularJS.

Últimamente estaba leyendo el blog de Mean.js y las cosas se aclararon . Tengo entendido que el desarrollador principal de Javascript (Amos Haviv) dejó Linnovate para trabajar en Mean.js dejando el proyecto MEAN.io con personas que son novatos desarrolladores de Node.js que están disminuyendo la comprensión de cómo se supone que funcionan las cosas.

En el futuro las cosas pueden cambiar, pero por ahora evitaría usar mean.io. Si está buscando un repetitivo para un inicio rápido, Mean.js parece una mejor opción que mean.io.

Chris Cinelli
fuente
55
Hola Chris, Linnovate ha estado trabajando en node.js / mongo durante más de 3 años. Aceptamos solicitudes de extracción e ideas si siente que algo está mal diseñado y tiene una idea constructiva de cómo mejorarlo. Sospecho que experimentó el cambio que hicimos en el proyecto principal para admitir la inyección de dependencia, el soporte de paquetes y el cli medio, hemos estado moviendo el proyecto de una plataforma estándar a un marco y tuvimos algunos "dolores de crecimiento".
Lior Kesos
3
Lo invito a que vuelva a visitar el proyecto y revise el nuevo sistema de paquetes que le permite extender su proyecto a través de paquetes medios. La comunidad ha aceptado muy bien la característica y es uno de los primeros ejemplos de paquetes completos de pila (que proporciona funcionalidad tanto del lado del servidor como del cliente a través de un paquete mientras se extiende el proyecto principal).
Lior Kesos
77
Después de comparar MEAN.io VS MEAN.js, por puro crecimiento. mean.js recibió 93 contribuyentes en 1 año con 700 commits, mientras que mean.io recibió 130 por 3 años y sorprendentemente bajo, 1200 commits. (solo por estadísticas, tómalo con un grano de sal) Obviamente, MEAN.js se está poniendo al día muy rápido. Oye, todavía no estoy investigando el código. pero básicamente, MEAN.io suena como la Apple que perdió su Steve Jobs.
Ezeewei
19

Aquí hay una comparación lado a lado de varios generadores / iniciadores de aplicaciones y otras tecnologías que incluyen MEAN.js, MEAN.io y cleverstack. Sigo agregando alternativas a medida que encuentro tiempo y, a medida que eso sucede, la lista de beneficios potencialmente proporcionados también sigue creciendo. Hoy es de alrededor de 1600. Si alguien quiere ayudar a mejorar su precisión o integridad, haga clic en el siguiente enlace y haga un cuestionario sobre algo que sabe.

Comparar proyecto de tecnologías de aplicaciones

A partir de esta base de datos, el sistema genera informes como los siguientes:

Informe de compensación de MeanJS vs MeanIO

Dan Cancro
fuente
44
Este es un documento de Google bastante épico que has creado.
honkskillet
Agregué páginas individuales al documento con comparaciones directas. Hay uno comparando MEAN.js y MEAN.io
Dan Cancro
1
"Necesita permiso": no es accesible.
Mörre
Ahora es una cooperativa de conocimiento. Solo complete un cuestionario aquí sobre alguna tecnología que conozca y le otorgaré acceso al documento dancancro.com/technology-questionnaires
Dan Cancro
13

La hoja de compensaciones iniciales de mi hoja de cálculo de comparación tiene comparaciones integrales entre cada generador. Por lo tanto, ya no es necesario elegir de manera distorsionada cosas geniales para decir sobre su favorito.

Aquí está el que está entre generador-angular-fullstack y MEAN.js. Los porcentajes son valores para cada beneficio basados ​​en mis ponderaciones personales, donde un generador perfecto sería 100%

generator- angular- fullstack ofrece 8% que MEANJS.org no ofrece

  • 1.9% Pruebas de extremo a extremo del lado del cliente
  • 0.6% de fábrica
  • 0.5% proveedor
  • 0.4% SASS
  • 0.4% MENOS
  • 0.4% Brújula
  • 0.4% decorador
  • 0.4% de subgenerador de punto final
  • 0.4% Comentarios
  • 0.3% FontAwesome
  • 0.3% Ejecutar servidor en modo de depuración
  • 0.3% Guardar respuestas del generador a un archivo
  • 0.2% constante
  • 0.2% Script de compilación de desarrollo: ...... reemplace los departamentos de terceros con versiones CDN
  • Autenticación 0.2% - Cookie
  • Autenticación al 0.2% - JSON Web Token (JWT)
  • 0.2% de registro del lado del servidor
  • 0.1% Script de compilación de desarrollo: ejecute tareas en paralelo para acelerarlo
  • 0.1% Script de compilación de desarrollo: renombra los archivos de activos para evitar el almacenamiento en caché del navegador
  • 0.1% Script de compilación de desarrollo: ejecute pruebas de extremo a extremo
  • 0.1% Script de compilación de producción: preminificación segura
  • 0.1% Script de compilación de producción: agregue prefijos de proveedor CSS
  • 0.1% de automatización de implementación de Heroku
  • Valor 0.1%
  • 0.1% Jade
  • 0.1% Coffeescript
  • 0,1% de restricción de ruta autenticada en el servidor
  • 0.1% versión SASS de Twitter Bootstrap
  • 0.1% Script de compilación de producción: comprimir imágenes
  • 0.1% de automatización de implementación de OpenShift

MeanJS.org. ofrece un 9% que el generador-angular-fullstack no

  • 3.7% Grupo de usuarios dedicados / con capacidad de búsqueda: tiempo de respuesta principalmente en menos de un día
  • 0.4% Generar rutas
  • 0,4% de autenticación - Oauth
  • 0.4% config
  • 0.4% i18n, localización
  • 0.4% Perfil de aplicación de entrada
  • 0.3% CARACTERÍSTICA (también conocido como módulo, entidad, crud-mock)
  • 0.3% sistema de menús
  • 0.3% Opciones para hacer subcomponentes
  • 0.3% de prueba - lado del cliente
  • 0.3% de rendimiento de Javascript
  • 0.3% Script de compilación de producción: crea páginas estáticas para SEO
  • 0.2% Instalación rápida?
  • 0.2% Grupo de usuarios dedicados / buscables
  • 0.1% Script de compilación de desarrollo: vuelva a cargar el archivo de compilación al cambiar
  • 0.1% Desarrollo script de compilación: archivos de café compilados a JS
  • 0.1% controlador - lado del servidor
  • Modelo 0.1% - lado del servidor
  • 0.1% ruta - lado del servidor
  • 0.1% de prueba - lado del servidor
  • 0.1% Swig
  • 0.1% seguro de IP Spoofing
  • 0.1% Script de compilación de producción: uglification
  • 0.0% Aproximación a las vistas: las URL comienzan con "#!"
  • 0.0% Enfoque para servicios frontend y llamadas ajax: usa $ resource

Aquí está el entre MEAN.io y MEAN.js en un formato más legible

<table border="1" cellpadding="10"><tbody><tr><td valign="top" width="33%"><br><br><h1>MeanJS.org. provides these benefits that MEAN.io. doesn't</h1><br><br><b>Help</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions, using github issues<br>&nbsp;&nbsp;&nbsp;&nbsp;* There's a book about it<br><b>File Organization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Basic sourcecode organization, module(-&gt;submodule)-&gt;side<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold directives<br><b>Code Modularization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS modules, Only one module definition per file<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS modules, Don’t alter a module other than where it is defined<br><b>Model</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Object-relational mapping<br>&nbsp;&nbsp;&nbsp;&nbsp;* Server-side validation, server-side example<br>&nbsp;&nbsp;&nbsp;&nbsp;* Client side validation, using Angular 1.3<br><b>View</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS views, Directives start with "data-"<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to data readiness, Use ng-init<br><b>Control</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, URLs start with '#!'<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, Use query parameters to store route state<br><b>Support for things</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Languages, LESS<br>&nbsp;&nbsp;&nbsp;&nbsp;* Languages, SASS<br><b>Syntax, language and coding</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* JavaScript 5 best practices, Don't use "new"<br><b>Testing</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Testing, using Mocha<br>&nbsp;&nbsp;&nbsp;&nbsp;* End-to-end tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* End-to-end tests, using Protractor<br>&nbsp;&nbsp;&nbsp;&nbsp;* Continuous integration (CI), using Travis<br><b>Development and debugging</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Command line interface (CLI), using Yeoman<br><b>Build</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build configurations file(s)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation, using Azure<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation, using Digital Ocean, screencast of it<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation, using Heroku, screencast of it<br><b>Code Generation</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Input application profile<br>&nbsp;&nbsp;&nbsp;&nbsp;* Quick install?<br>&nbsp;&nbsp;&nbsp;&nbsp;* Options for making subcomponents<br>&nbsp;&nbsp;&nbsp;&nbsp;* config generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* controller (client side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* directive generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* filter generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* route (client side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* service (client side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* test - client side<br>&nbsp;&nbsp;&nbsp;&nbsp;* view or view partial generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* controller (server side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* model (server side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* route (server side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* test (server side) generator<br><b>Implemented Functionality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Account Management, Forgotten Password with Resetting<br>&nbsp;&nbsp;&nbsp;&nbsp;* Chat<br>&nbsp;&nbsp;&nbsp;&nbsp;* CSV processing<br>&nbsp;&nbsp;&nbsp;&nbsp;* E-mail sending system<br>&nbsp;&nbsp;&nbsp;&nbsp;* E-mail sending system, using Nodemailer<br>&nbsp;&nbsp;&nbsp;&nbsp;* E-mail sending system, using its own e-mail implementation<br>&nbsp;&nbsp;&nbsp;&nbsp;* Menus system, state-based<br>&nbsp;&nbsp;&nbsp;&nbsp;* Paypal integration<br>&nbsp;&nbsp;&nbsp;&nbsp;* Responsive design<br>&nbsp;&nbsp;&nbsp;&nbsp;* Social connections management page<br><b>Performance</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Creates a favicon<br><b>Security</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Safe from IP Spoofing<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authorization, Access Contol List (ACL)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, Cookie<br>&nbsp;&nbsp;&nbsp;&nbsp;* Websocket and RESTful http share security policies<br><br><br></td><td valign="top" width="33%"><br><br><h1>MEAN.io. provides these benefits that MeanJS.org. doesn't</h1><br><br><b>Quality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Sponsoring company<br><b>Help</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Docs with flatdoc<br><b>Code Modularization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Share code between projects<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module manager<br><b>View</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to data readiness, Use state.resolve()<br><b>Control</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend code loading, Use AMD with Require.js<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend code loading, using wiredep<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to error handling, Server-side logging<br><b>Client/Server Communication</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Centralized event handling<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to XHR calls, using $http and $q<br><b>Syntax, language and coding</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* JavaScript 5 best practices, Wrap code in an IIFE (SEAF, SIAF)<br><b>Development and debugging</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* API introspection report and testing interface, using Swagger<br>&nbsp;&nbsp;&nbsp;&nbsp;* Command line interface (CLI), using Independent command line interface<br><b>Build</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, add IIFEs (SEAF, SIAF) to executable copies of code<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation, using Heroku<br><b>Code Generation</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Scaffolding undo&nbsp;&nbsp;&nbsp;&nbsp;(mean package -d &lt;name&gt;)<br>&nbsp;&nbsp;&nbsp;&nbsp;* FEATURE (a.k.a. module, entity) generator, Menu items added for new features<br><b>Implemented Functionality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Admin page for users and roles<br>&nbsp;&nbsp;&nbsp;&nbsp;* Content Management System&nbsp;&nbsp;&nbsp;&nbsp;(Use special data-bound directives in your templates.<br>Switch to edit mode and you can edit the values right where you see them)<br>&nbsp;&nbsp;&nbsp;&nbsp;* File Upload<br>&nbsp;&nbsp;&nbsp;&nbsp;* i18n, localization<br>&nbsp;&nbsp;&nbsp;&nbsp;* Menus system, submenus<br>&nbsp;&nbsp;&nbsp;&nbsp;* Search<br>&nbsp;&nbsp;&nbsp;&nbsp;* Search, actually works with backend API<br>&nbsp;&nbsp;&nbsp;&nbsp;* Search, using Elastic Search<br>&nbsp;&nbsp;&nbsp;&nbsp;* Styles, using Bootstrap, using UI Bootstrap AngularJS directives<br>&nbsp;&nbsp;&nbsp;&nbsp;* Text (WYSIWYG) Editor<br>&nbsp;&nbsp;&nbsp;&nbsp;* Text (WYSIWYG) Editor, using medium-editor<br><b>Performance</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Instrumentation, server-side<br><b>Security</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Serverside authenticated route restriction<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, using Oauth, Link multiple Oauth strategies to one account<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, JSON Web Token (JWT)<br><br><br></td><td valign="top" width="33%"><br><br><h1>MEAN.io. and MeanJS.org. both provide these benefits</h1><br><br><b>Quality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Version Control, using git<br><b>Platforms</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Client-side JS Framework, using AngularJS<br>&nbsp;&nbsp;&nbsp;&nbsp;* Frontend Server/ Framework, using Node.JS<br>&nbsp;&nbsp;&nbsp;&nbsp;* Frontend Server/ Framework, using Node.JS, using Express<br>&nbsp;&nbsp;&nbsp;&nbsp;* API Server/ Framework, using NodeJS<br>&nbsp;&nbsp;&nbsp;&nbsp;* API Server/ Framework, using NodeJS, using Express<br><b>Help</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions, using Google Groups<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions, using Facebook<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions, response time mostly under a day<br>&nbsp;&nbsp;&nbsp;&nbsp;* Example application<br>&nbsp;&nbsp;&nbsp;&nbsp;* Tutorial screencast in English<br>&nbsp;&nbsp;&nbsp;&nbsp;* Tutorial screencast in English, using Youtube<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated chatroom<br><b>File Organization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Basic sourcecode organization, module(-&gt;submodule)-&gt;side, with type subfolders<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold controllers<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold services<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold templates<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold unit tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Separate route configuration files for each module<br><b>Code Modularization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Modularized Functionality<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS modules, No global 'app' module variable<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS modules, No global 'app' module variable without an IIFE<br><b>Model</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Setup of persistent storage<br>&nbsp;&nbsp;&nbsp;&nbsp;* Setup of persistent storage, using NoSQL db<br>&nbsp;&nbsp;&nbsp;&nbsp;* Setup of persistent storage, using NoSQL db, using MongoDB<br><b>View</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* No XHR calls in controllers<br>&nbsp;&nbsp;&nbsp;&nbsp;* Templates, using Angular directives<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to data readiness, prevents Flash of Unstyled/compiled Content (FOUC)<br><b>Control</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, example of it<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, State-based routing<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, State-based routing, using ui-router<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, HTML5 Mode<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend code loading, using angular.bootstrap()<br><b>Client/Server Communication</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Serve status codes only as responses<br>&nbsp;&nbsp;&nbsp;&nbsp;* Accept nested, JSON parameters<br>&nbsp;&nbsp;&nbsp;&nbsp;* Add timer header to requests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Support for signed and encrypted cookies<br>&nbsp;&nbsp;&nbsp;&nbsp;* Serve URLs based on the route definitions<br>&nbsp;&nbsp;&nbsp;&nbsp;* Can serve headers only<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to XHR calls, using JSON<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to XHR calls, using $resource (angular-resource)<br><b>Support for things</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Languages, JavaScript (server side)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Languages, Swig<br><b>Syntax, language and coding</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* JavaScript 5 best practices, Use 'use strict'<br><b>Tool Configuration/customization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Separate runtime configuration profiles<br><b>Testing</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Testing, using Jasmine<br>&nbsp;&nbsp;&nbsp;&nbsp;* Testing, using Karma<br>&nbsp;&nbsp;&nbsp;&nbsp;* Client-side unit tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Continuous integration (CI)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Automated device testing, using Live Reload<br>&nbsp;&nbsp;&nbsp;&nbsp;* Server-side integration &amp; unit tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Server-side integration &amp; unit tests, using Mocha<br><b>Development and debugging</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Command line interface (CLI)<br><b>Build</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build-time Dependency Management, using npm<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build-time Dependency Management, using bower<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build tool / Task runner, using Grunt<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build tool / Task runner, using gulp<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, script<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, reload build script file upon change<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, copy assets to build or dist or target folder<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, html page processing<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, html page processing, inject references by searching directories<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, html page processing, inject references by searching directories, injects js references<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, html page processing, inject references by searching directories, injects css references<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, LESS/SASS/etc files are linted, compiled<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, JavaScript style checking<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, JavaScript style checking, using jshint or jslint<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, run unit tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, script<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, concatenation (aggregation, globbing, bundling)&nbsp;&nbsp;&nbsp;&nbsp;(If you add debug:true to your config/env/development.js the will not be <br>uglified)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, minification<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, safe pre-minification, using ng-annotate<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, uglification<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, make static pages for SEO<br><b>Code Generation</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* FEATURE (a.k.a. module, entity) generator&nbsp;&nbsp;&nbsp;&nbsp;(README.md<br>feature css<br>routes<br>controller<br>view<br>additional menu item)<br><b>Implemented Functionality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* 404 Page<br>&nbsp;&nbsp;&nbsp;&nbsp;* 500 Page<br>&nbsp;&nbsp;&nbsp;&nbsp;* Account Management<br>&nbsp;&nbsp;&nbsp;&nbsp;* Account Management, register/login/logout<br>&nbsp;&nbsp;&nbsp;&nbsp;* Account Management, is password manager friendly<br>&nbsp;&nbsp;&nbsp;&nbsp;* Front-end CRUD<br>&nbsp;&nbsp;&nbsp;&nbsp;* Full-stack CRUD<br>&nbsp;&nbsp;&nbsp;&nbsp;* Full-stack CRUD, with Read<br>&nbsp;&nbsp;&nbsp;&nbsp;* Full-stack CRUD, with Create, Update and Delete<br>&nbsp;&nbsp;&nbsp;&nbsp;* Google Analytics<br>&nbsp;&nbsp;&nbsp;&nbsp;* Menus system<br>&nbsp;&nbsp;&nbsp;&nbsp;* Realtime data sync<br>&nbsp;&nbsp;&nbsp;&nbsp;* Realtime data sync, using socket.io<br>&nbsp;&nbsp;&nbsp;&nbsp;* Styles, using Bootstrap<br><b>Performance</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Javascript performance thing<br>&nbsp;&nbsp;&nbsp;&nbsp;* Javascript performance thing, using lodash<br>&nbsp;&nbsp;&nbsp;&nbsp;* One event-loop thread handles all requests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Configurable response caching&nbsp;&nbsp;&nbsp;&nbsp;(Express plugin<br><b>https</b>://www.npmjs.org/package/apicache)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Clustered HTTP sessions<br><b>Security</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* JavaScript obfuscation<br>&nbsp;&nbsp;&nbsp;&nbsp;* https<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, using Oauth<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, Basic&nbsp;&nbsp;&nbsp;&nbsp;(With Passport or others)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, Digest&nbsp;&nbsp;&nbsp;&nbsp;(With Passport or others)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, Token&nbsp;&nbsp;&nbsp;&nbsp;(With Passport or others)<br></td></tr></tbody></table>

Dan Cancro
fuente
13
Le sugiero que combine las dos respuestas que ha publicado.
CMPSoares
8

Me sorprende que nadie haya mencionado el generador Yeoman angular-fullstack . Es el generador número uno de la comunidad de Yeoman, con actualmente 1490 estrellas en la página del generador frente a las 81 estrellas de Mean.js (ciertamente no es una comparación justa dado lo nuevo que es MEANJS). Parece que se mantiene activamente y está en la versión 2.05 mientras escribo esto. A diferencia de MEANJS, no usa Swig para crear plantillas. Se puede andamiaje con pasaporte incorporado.

honkskillet
fuente
La respuesta de @ SDude lo mencionó.
CMPSoares
¿Dónde? No lo veo en ninguna parte en su respuesta o comentarios.
honkskillet
Tal vez entendí mal su respuesta ... Pero SDude mencionó que "Mean.js usa Yeoman Generators" para andamios.
CMPSoares
1
Me había olvidado por completo de esto. De hecho, aprendí acerca de MEAN.js en los comentarios de github de generator-angular-fullstack hace mucho tiempo ... Lo agregué a la respuesta.
joseldn
2
@CMPSoares ... Hay múltiples generadores Yeoman que distribuyen las pilas MEAN. Angular-Fullstack y Mean.js son solo dos de muchos (¿podría decirse que son los dos más desarrollados?). Puede ver todos los generadores de la comunidad de Yeoman aquí ... Generadores de Yeoman
honkskillet