Différence entre MEAN.js et MEAN.io

Je voulais utiliser MEAN JavaScript Stack, mais j'ai remarqué qu'il y a deux piles différentes avec leur propre site et les méthodes d'installation: mean.js et mean.io. Je suis donc venu me poser cette question: "Quelle est-ce que j'utilise?".

Donc, pour répondre à cette question, je demande à la communauté si vous pouvez expliquer quelles sont les différences entre ces deux? Et si possible des avantages et des inconvénients? Parce qu'ils sont très semblables à moi.

Ils sont essentiellement les mêmes … Ils utilisent tous deux le swig pour les modèles, ils utilisent tous le karma et le moka pour les tests, l'intégration des passeports, le nodemon, etc.

Pourquoi est-ce si similaire? Mean.js est une fourchette de Mean.io et les deux initiatives ont été lancées par le même type … Mean.io est maintenant sous le parapluie de la société Linnovate et ressemble à l'homme (Amos Haviv) a arrêté sa collaboration avec cette société et A commencé Mean.js. Vous pouvez en savoir plus sur les raisons ici .

Maintenant … les principales (ou petites) différences que vous pouvez voir en ce moment sont:

GÉNÉRATION D'ÉCLAIRAGE ET DE BOILERPLATE

Mean.io utilise un outil cli personnalisé appelé 'mean'
Mean.js utilise Yeoman Generators

MODULARITE

Mean.io utilise une modularité de paquets de nœuds plus autonome avec les fichiers client et serveur dans les modules.
Mean.js utilise des modules juste dans le front-end (pour angulaire), et les connecte avec Express. Bien qu'ils travaillent également sur des modules verticaux …

SYSTÈME DE CONSTRUCTION

Mean.io a récemment déménagé à gulp
Mean.js utilise grunt

DÉPLOIEMENT

Les deux ont Dockerfiles dans leurs repos respectifs, et Mean.io a installé un clic sur Google Compute Engine , tandis que Mean.js peut également être déployé avec un clic sur l'installation sur Digital Ocean .

DOCUMENTATION

Mean.io a ok docs
Mean.js a des CD IMPRESSIONNANTS

COMMUNAUTÉ

Mean.io a une plus grande communauté car il s'agissait de l'original
Mean.js a moins d'élan mais une croissance régulière

Au niveau personnel, j'aime plus la philosophie et l'ouverture de MeanJS et plus l'approche de traction et modules / paquets de MeanIO. Les deux sont gentils, et vous finirez probablement de les modifier, de sorte que vous ne pouvez pas vraiment vous tromper en choisissant l'un ou l'autre. Il suffit de les prendre comme point de départ et comme un exercice d'apprentissage.

SOLUTIONS ALTERNATIVES "SIGNIFIANTES"

MEAN est un moyen générique (inventé par Valeri Karpov ) pour décrire un tableau / cadre qui prend "Mongo + Express + Angular + Node" comme base de la pile. Vous pouvez trouver des cadres avec cette pile qui utilisent une autre dénomination, dont certaines sont vraiment bonnes pour le RAD (Rapid Application Development) et la création de SPA. Par exemple:

  • Météore . Maintenant, avec un support Angulaire officiel, représente une excellente pile MEAN
  • StrongLoop Loopback (principaux contributeurs Node.js et mainteneurs Express )
  • Generator Angular Fullstack
  • Sails.js
  • Cleverstack
  • Déployé, etc. (il y a plus)

Vous avez également Hackathon Starter . Il n'a pas A de MEAN (il est 'MEN'), mais il traverse …

S'amuser!

Tout d'abord, MEAN signifie MongoDB , Express , Angular et Node.js. Il identifie génériquement l'utilisation combinée de ces technologies. Il n'y a pas de " THE MEAN framework".

Lior Kesos à Linnovate a profité de cette confusion. Il a acheté le domaine MEAN.io et a mis un code sur https://github.com/linnovate/mean

Ils ont heureusement reçu beaucoup de publicité. Dans Internet récemment, il y a de plus en plus d'articles et de vidéos sur MEAN. Lorsque Google "signifie cadre" signifie .io est le premier de la liste.

Malheureusement, le code à https://github.com/linnovate/mean semblait mal conçu . En février, je me sentais dans le piège. Le site mean.io avait un design accrocheur et le Repo de Github avait plus de 1000 étoiles. L'idée d'interroger la qualité n'a même pas traversé mon esprit. J'ai commencé à expérimenter, mais il n'a pas fallu trop de temps pour trébucher dans des choses qui ne fonctionnaient pas et des pièces de code incroyables. L'histoire de l'engagement était également très intéressante. Ils ont remanié le code et la structure du répertoire plusieurs fois et la fusion des nouveaux changements nécessite beaucoup de temps.

Les bonnes choses sur le code mean.io et mean.js sont qu'ils viennent avec l'intégration Bootstrap. Ils viennent également avec l'authentification Facebook, Github, Linkedin, etc. via PassportJs et un exemple de modèle (Article) sur le backend sur MongoDB qui se synchronise avec le modèle frontend avec AngularJS.

Selon le site internet de Linnovate:

Linnovate est la première société Open Source en Israël, avec l'équipe la plus expérimentée du pays, dédiée à la création de solutions open source haut de gamme. Linnovate est la seule entreprise en Israël qui offre des services AZ pour les entreprises pour la construction et la maintenance de leur prochain projet web.

Du site Web, il semble que leur ensemble de compétences de base soit Drupal (un système de gestion de contenu PHP) et que récemment, ils ont commencé à utiliser Node.js et AngularJS.

Dernièrement, je lisais le Blog Mean.js et les choses devinrent plus claires. Je comprends bien que le développeur principal de Javascript (Amos Haviv) a laissé Linnovate travailler sur Mean.js quittant le projet MEAN.io avec des personnes novices qui développent Node.js qui ralentissent la compréhension de la façon dont les choses devraient fonctionner.

À l'avenir, les choses peuvent changer, mais pour l'instant j'éviterais d'utiliser mean.io. Si vous êtes à la recherche d'un outil pour un démarrage rapide, Mean.js semble être une option meilleure que mean.io.

Voici une comparaison côte-à-côte de plusieurs démarreurs / générateurs d'applications et d'autres technologies, y compris MEAN.js, MEAN.io et cleverstack. Je continue d'ajouter des alternatives car je trouve le temps et, comme cela se produit, la liste des avantages potentiellement fournis continue de croître aussi. Aujourd'hui, il est environ vers 1600. Si quelqu'un veut aider à améliorer sa précision ou son intégralité, cliquez sur le lien suivant et faites un questionnaire sur quelque chose que vous connaissez.

Comparer le projet des technologies de l'application

À partir de cette base de données, le système génère des rapports comme suit:

Rapport de compromis MeanJS vs MeanIO

La feuille de démarrage de démarrage de ma feuille de comparaison a des comparaisons individuelles exhaustives entre chaque générateur. Donc, il n'y a plus besoin de distorsion de cerise, de choisir de bonnes choses à propos de votre préféré.

Voici celui entre generator-angular-fullstack et MEAN.js. Les pourcentages sont des valeurs pour chaque prestation en fonction de mes pondérations personnelles, où un générateur parfait serait de 100%

Generator-angular-fullstack offre 8% que MEANJS.org ne fonctionne pas

  • 1,9% Tests de bout en bout côté client
  • 0,6% usine
  • Fournisseur de 0,5%
  • 0,4% SASS
  • 0,4% MOINS
  • 0,4% Boussole
  • Décorateur de 0,4%
  • 0,4% sous-générateur de point final
  • 0,4% Commentaires
  • 0,3% FontAwesome
  • 0,3% Exécuter le serveur en mode débogage
  • 0,3% Enregistrer les réponses du générateur à un fichier
  • 0,2% constant
  • 0.2% Script de développement: …… replace 3rd deps avec versions CDN
  • 0,2% Authentification – Cookie
  • 0,2% d'authentification – JSON Web Token (JWT)
  • 0,2% Enregistrement côté serveur
  • 0.1% Script de développement: exécutez les tâches en parallèle pour l'accélérer
  • 0.1% Script de création de développement: renomme les fichiers d'actifs pour empêcher la mise en cache du navigateur
  • 0.1% Script de développement: exécuter des tests de bout en bout
  • 0.1% Script de création de production: pré-minification sécuritaire
  • 0.1% Script de création de production: ajouter des préfixes de fournisseur de CSS
  • 0,1% d'automatisation de déploiement de Heroku
  • 0,1% de valeur
  • 0.1% Jade
  • 0.1% Coffeescript
  • 0,1% Restriction de route authentifiée par serveurs
  • 0.1% SASS version de Twitter Bootstrap
  • 0.1% Script de création de production: compresser des images
  • 0.1% Automatisation de déploiement OpenShift

MeanJS.org. Offre 9% que le générateur-angulaire-fullstack ne

  • 3,7% Groupe d'utilisateurs dédié / recherchable: temps de réponse principalement sous un jour
  • 0,4% Générer des itinéraires
  • 0,4% Authentification – Oauth
  • 0,4% de configuration
  • 0,4% i18n, localisation
  • 0,4% Profil d'application d'entrée
  • 0,3% FEATURE (aka module, entité, crud-mock)
  • Système de menus de 0,3%
  • 0,3% Options pour créer des sous-composants
  • 0,3% test – côté client
  • 0,3% de performance Javascript
  • 0,3% Script de création de production: créer des pages statiques pour le référencement
  • 0,2% Installation rapide?
  • 0,2% Groupe d'utilisateurs dédié / recherchable
  • 0.1% Script de création de développement: recharger le fichier de construction lors du changement
  • 0.1% Script de développement: fichiers de café compilés sur JS
  • 0,1% contrôleur – côté serveur
  • 0.1% modèle – côté serveur
  • Route de 0,1% – côté serveur
  • Test de 0,1% – côté serveur
  • 0,1% Swig
  • 0,1% sûr contre IP Spoofing
  • 0.1% Script de construction de production: uglification
  • 0.0% Approche des vues: les URL commencent par "#!"
  • 0,0% Approche des services de frontend et des appels ajax: utilise $ resource

Voici celui entre MEAN.io et MEAN.js dans un format plus lisible

<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 (aka 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 (aka 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> 

Je suis surpris que personne n'ait mentionné le générateur Yeoman angular-fullstack . C'est le premier générateur de communauté Yeoman, avec actuellement 1490 étoiles sur la page du générateur vs 81 étoiles de Mean.js (certes, pas une comparaison équitable compte tenu de la nouvelle MEANJS). Il semble être activement maintenu et se trouve dans la version 2.05 lorsque j'écris ceci. Contrairement à MEANJS, il n'utilise pas Swig pour la modélisation. Il peut être échafaudé avec un passeport intégré.