MEAN.js ve MEAN.io arasındaki fark


335

ORTALAMA JavaScript Yığını kullanmak istedim, ancak kendi web sitesi ve yükleme yöntemleriyle iki farklı yığın olduğunu fark ettim: mean.js ve mean.io. Bu yüzden kendime şu soruyu sordum: "Hangisini kullanıyorum?".

Bu soruyu cevaplamak için topluma bu ikisi arasındaki farkların ne olduğunu açıklayabilir misiniz diye soruyorum. Ve mümkünse artıları ve eksileri? Çünkü bana çok benziyorlar.


5
MEAN.io ve MEAN.js arasında seçim yapmak artık Meteor'un 1.0 yayınladığı ve kutudan çok daha fazlasını sunduğu bir tartışma noktası olabilir .
Dan Dascalescu

Yanıtlar:


374

Aslında aynılar ... İkisi de templating için peruk kullanıyorlar, ikisi de testler, pasaport entegrasyonu, nodemon vb.Için karma ve mocha kullanıyorlar.

Neden bu kadar benzer? Mean.js, Mean.io'nun bir çatalı ve her iki girişim de aynı adam tarafından başlatıldı ... Mean.io şimdi Linnovate şirketinin çatısı altında ve adam (Amos Haviv) bu şirket ile işbirliğini durdurdu ve başladı Mean.js Bunun nedenleri hakkında daha fazla bilgiyi buradan edinebilirsiniz .

Şimdi ... şu anda görebileceğiniz ana (veya küçük) farklar şunlardır:


İSKELE VE KAZAN PLAKASI ÜRETİMİ

Mean.io, 'mean' adlı özel bir cli aracı
kullanıyor. Mean.js, Yeoman Generators kullanıyor


MODÜLERLİK

Mean.io, modüllerin içindeki istemci ve sunucu dosyalarıyla daha bağımsız bir düğüm paketleri modülerliği kullanır.
Mean.js, modülleri sadece ön uçta (açısal için) kullanır ve Express'e bağlar. Dikey modüller üzerinde de çalışsalar da ...


YAPI SİSTEMİ

Mean.io yakın zamanda gulp'e taşındı
Mean.js homurdanıyor


DAĞITIM

Her ikisinin de ilgili depolarında Docker dosyaları vardır ve Mean.io'nun Google Compute Engine'e tek tıklamayla yüklenirken, Mean.js de Dijital Okyanusa tek tıklamayla yüklenebilir .


BELGELER

Mean.io'nun ok belgeleri var
Mean.js'nin AWESOME belgeleri var


TOPLULUK

Mean.io, orijinal kazan plakası olduğu için daha büyük bir topluluğa
sahiptir. Mean.js daha az momentuma sahip, ancak istikrarlı bir büyüme


Kişisel düzeyde, MeanJS'nin felsefesini ve açıklığını ve MeanIO'nun çekiş ve modüller / paketler yaklaşımını daha çok seviyorum. Her ikisi de güzel ve muhtemelen onları değiştireceksiniz, bu yüzden birini veya diğerini seçerken gerçekten yanlış gidemezsiniz. Onları başlangıç ​​noktası ve bir öğrenme egzersizi olarak kabul edin.


ALTERNATİF “ANLAM” ÇÖZÜMLERİ

MEAN, "Mongo + Express + Angular + Node" yığının temelini alan bir kazan plakasını / çerçevesini tanımlamanın genel bir yoludur ( Valeri Karpov tarafından üretilmiştir ). Bazıları RAD (Hızlı Uygulama Geliştirme) ve bina SPA'ları için gerçekten iyi olan bu yığınla diğer mezhepleri kullanan çerçeveler bulabilirsiniz. Örneğin:

Ayrıca Hackathon Starter'ınız var . ORTAN A'dan ('ERKEKLER') yok, ama sallanıyor ..

İyi eğlenceler!


5
Hey cevap için teşekkürler! hackathon-starter harika görünüyor! Aradığım şey için daha fazla görünüyor. Ayrıca çoğunlukla JS ve zaten kimlik doğrulamaları uygulanmış ve en zor kısmı olacağını düşündüm şeydi ... Hepsi hala tüm seçeneklerimi bilmiyormuşum gibi hissettim ...: - / Ayrıca daha sonra geldi, starter'ın İskele ve Isıtıcı Jeneratörü var mı? Ama yine de müthiş cevabınız için çok teşekkür ederim!
CMPSoares

7
Rica ederim. Evet, hackathon-starter hakkında da sevdiğim şey, tam hesap yönetimi ve iş akışı (şifreyi unuttum, onay e-postası vb.) Ve sendgrid, paypal, vb ile entegrasyon ... MEAN.js ve MEAN.io'nun her ikisi de eksik. Bazı tür projeler için harika bir başlangıç.
joseldn

1
Eğer açısal ihtiyacınız yoksa kesinlikle projeler için iyi bir başlangıç ​​noktasıdır. Platformun diğer bölümleri hakkında endişelenmeyin. Büyük olasılıkla sadece bunu yapan tak ve çalıştır düğümü paketleri bulacaksınız .. Yani: gist.github.com/facultymatt/6370903 roller için
joseldn

1
REST API'sini kullandığınız SOA'larla kullanmak iyi bir durum olacaktır. Sıkı bir programdaysanız, açısal bırakın. Öğrenme eğrisi oldukça dik ... Ön uç için "olması güzel" ama kritik bir bileşen değil. Her zaman paralel olarak öğrenebilir ve bir sonraki projenizde kullanabilir veya daha sonra bu projeye takabilirsiniz.
joseldn

2
Hey Millet! Hackathon başlatıcıdan türetilmiş bir şey buldum ama çok da güzel: İskelet ! ;-)
CMPSoares

66

Her şeyden önce, MEAN M ongoDB, E xpress, A ngular ve N ode.js için kullanılan bir kısaltmadır.

Genel olarak bu teknolojilerin bir "yığın" içinde birleşik kullanımını tanımlar. "Diye bir bir şey yoktur ORTALAMA çerçeve".

Lior Kesos at Linnovate bu karmaşanın yararlandı. MEAN.io alan adını satın aldı ve https://github.com/linnovate/mean adresine bir kod koydu.

Neyse ki çok fazla tanıtım aldılar ve MEAN hakkında daha fazla makale ve video var. Google "çerçevesini kastediyorsanız", mean.io listede ilk sırada yer alır.

Ne yazık ki https://github.com/linnovate/mean adresindeki kodun mühendisliği zayıf görünüyor .

Şubat ayında tuzağa düştüm. Mean.io sitesi çekici bir tasarıma ve Github repo 1000'den fazla yıldıza sahipti. Kaliteyi sorgulama fikri aklımdan bile geçmedi. Bununla denemeye başladım, ancak çalışmayan şeylere rastlamak ve kod parçalarını şaşırtmak çok uzun sürmedi.

Taahhüt tarihi de oldukça ilgiliydi. Kod ve dizin yapısını birkaç kez yeniden tasarladılar ve yeni değişiklikleri birleştirmek çok zaman alıyor.

Mean.io ve mean.js kodu ile ilgili güzel şeyler Bootstrap entegrasyonu ile gelmeleri. Ayrıca PassportJ'ler aracılığıyla Facebook, Github, Linkedin vb. Kimlik doğrulaması ve MongoDB'nin arka ucunda AngularJS ile ön uç modeliyle senkronize edilen bir model (Makale) örneği ile birlikte geliyorlar.

Linnovate'in web sitesine göre:

Linnovate, üst düzey açık kaynak çözümlerinin oluşturulmasına adanmış, ülkenin en deneyimli ekibiyle İsrail'in önde gelen Açık Kaynak şirketidir. Linnovate, İsrail'de bir sonraki web projelerini oluşturmak ve sürdürmek için işletmelere A'dan Z'ye hizmet veren tek şirkettir.

Web sitesinden temel yetenekleri Drupal (bir PHP içerik yönetim sistemi) gibi görünüyor ve sadece son zamanlarda Node.js ve AngularJS kullanmaya başladılar.

Son zamanlarda Mean.js Blogunu okuyordum ve işler daha net hale geldi. Anlayışım, ana Javascript geliştiricisinin (Amos Haviv), Linnovate'i Mean.js üzerinde çalışmaya bırakması ve şeylerin nasıl çalışması gerektiğini anlamalarını yavaşlatan acemi Node.js geliştiricileri olan insanlarla MEAN.io projesini bırakmasıdır.

Gelecekte işler değişebilir, ancak şimdilik mean.io kullanmaktan kaçınırım. Bir quickstart Mean.js için bir kazan plakası arıyorsanız mean.io'dan daha iyi bir seçenek gibi görünüyor.


5
Merhaba Chris, Linnovate 3 yıldan uzun bir süredir node.js / mongo işi yapıyor, bir şeyin kötü tasarlanmış olduğunu düşünüyorsanız ve onu nasıl geliştireceğiniz konusunda yapıcı bir fikriniz varsa çekme isteklerini ve fikirlerini kabul ediyoruz. Bağımlılık enjeksiyonunu, paket desteğini ve ortalama klibi desteklemek için çekirdek projede yaptığımız değişikliği yaşadığınızdan şüpheleniyorum, projeyi bir ısıtıcı levhadan bir çerçeveye taşıyoruz ve bazı "büyüyen ağrıları" vardı.
Lior Kesos

3
Sizi projeyi tekrar ziyaret etmeye ve projenizi ortalama paketlerle genişletmenize olanak tanıyan yeni paket sistemini incelemeye davet ediyorum. Bu özellik topluluk tarafından çok iyi kabul edildi ve tam yığın paketlerin ilk örneklerinden biri (çekirdek projeyi genişletirken bir paket aracılığıyla hem sunucu hem de istemci tarafında işlevsellik sağlıyor).
Lior Kesos

7
MEAN.io VS MEAN.js'yi karşılaştırdıktan sonra, saf büyüme ile. mean.js, 1 yılda 700 komisyonla 93 katılımcı alırken, mean.io 3 yıl boyunca 130 ve şaşırtıcı derecede düşük, 1200 komisyon aldı. (sadece istatistiklere göre, bir tuz tanesi ile alın) Açıkçası, MEAN.js çok hızlı bir şekilde yakalanıyor. Hey, henüz koda bakmıyorum. ama temel olarak, MEAN.io Steve Jobs'u kaybeden Apple'a benziyor.
Ezeewei

19

Burada birkaç uygulama başlatıcısı / üreticisi ve MEAN.js, MEAN.io ve cleverstack dahil olmak üzere diğer teknolojilerin yan yana karşılaştırması verilmiştir. Zaman bulduğumda alternatifler eklemeye devam ediyorum ve bu nedenle potansiyel olarak sağlanan faydaların listesi de büyümeye devam ediyor. Bugün yaklaşık 1600'e kadar. Herhangi biri doğruluğunu veya eksiksizliğini artırmak istiyorsanız, bir sonraki bağlantıyı tıklayın ve bildiğiniz bir şey hakkında bir anket yapın.

Uygulama teknolojileri projesini karşılaştırın

Bu veritabanından, sistem aşağıdaki gibi raporlar oluşturur:

MeanJS ve MeanIO takas raporu


4
Bu, bir araya getirdiğiniz oldukça destansı bir google doc.
honkskillet

Belgeye baş başa karşılaştırmalarla ayrı ayrı sayfalar ekledim. MEAN.js ve MEAN.io
Dan

1
"İzne ihtiyacınız var" - erişilebilir değil.
Mörre

Şimdi bir bilgi kooperatifi. Sadece bildiğiniz bazı teknolojilerle ilgili bir anket doldurun ve size doktora erişim izni vereceğim dancancro.com/technology-questionnaires
Dan

13

Karşılaştırma e -tablomun Başlangıç ​​Ticari İşlemleri sayfasında , her bir jeneratör arasında kapsamlı bire bir karşılaştırmalar bulunur. Bu yüzden, en sevdiğiniz şey hakkında söyleyecek harika şeyler çarpık bir şekilde kiraz almaya gerek yok.

İşte jeneratör-açısal-fullstack ve MEAN.js arasında olan. Yüzdeler, mükemmel bir jeneratörün% 100 olacağı kişisel ağırlıklarıma göre her bir fayda için değerlerdir

jeneratör- açısal- fullstack MEANJS.org% 8 teklif sunuyor

  • % 1.9 Müşteri tarafından uçtan uca testler
  • % 0.6 fabrika
  • % 0.5 sağlayıcı
  • % 0.4 SASS
  • % 0,4 DAHA AZ
  • % 0.4 Pusula
  • % 0.4 dekoratör
  • % 0,4 Uç nokta alt jeneratörü
  • 0.4% Yorumlar
  • % 0.3 FontAwesome
  • % 0.3 Sunucuyu hata ayıklama modunda çalıştırma
  • 0.3% Jeneratör cevaplarını bir dosyaya kaydet
  • % 0.2 sabit
  • % 0,2 Geliştirme oluşturma betiği: ...... 3. taraf borçlarını CDN sürümleriyle değiştirin
  • % 0.2 Kimlik Doğrulama - Çerez
  • % 0.2 Kimlik Doğrulama - JSON Web Simgesi (JWT)
  • % 0.2 Sunucu tarafı günlüğü
  • % 0,1 Geliştirme oluşturma komut dosyası: görevleri hızlandırmak için paralel olarak çalıştırın
  • % 0,1 Geliştirme oluşturma komut dosyası: Tarayıcı önbelleğini önlemek için varlık dosyalarını yeniden adlandırır
  • % 0,1 Geliştirme oluşturma betiği: uçtan uca testleri çalıştırın
  • % 0,1 Üretim oluşturma betiği: güvenli ön küçültme
  • % 0.1 Üretim derleme betiği: CSS satıcı önekleri ekleyin
  • % 0.1 Heroku dağıtım otomasyonu
  • % 0,1 değer
  • % 0.1 Yeşim
  • % 0,1 Kahve
  • % 0,1 Sunucu tarafı kimlik doğrulamalı rota kısıtlaması
  • Twitter Bootstrap'ın% 0.1 SASS sürümü
  • % 0.1 Üretim oluşturma betiği: görüntüleri sıkıştır
  • % 0.1 OpenShift dağıtım otomasyonu

MeanJS.org. jeneratör açısal fullstack'ın sunmadığı% 9

  • % 3,7 Özel / aranabilir kullanıcı grubu: çoğunlukla bir günün altında yanıt süresi
  • % 0,4 Rota oluştur
  • % 0,4 Kimlik Doğrulama - Oauth
  • % 0.4 yapılandırma
  • % 0.4 i18n, yerelleştirme
  • % 0,4 Giriş başvuru profili
  • % 0,3 ÖZELLİK (aka modül, varlık, çarpık model)
  • % 0.3 Menüler sistemi
  • % 0,3 Alt bileşenler yapma seçenekleri
  • % 0.3 test - müşteri tarafı
  • % 0.3 Javascript performansı
  • % 0.3 Üretim oluşturma komut dosyası: SEO için statik sayfalar oluşturun
  • 0.2% Hızlı kurulum?
  • % 0,2 Özel / aranabilir kullanıcı grubu
  • % 0,1 Geliştirme derleme betiği: Değişiklik üzerine derleme dosyasını yeniden yükle
  • % 0,1 Geliştirme oluşturma betiği: JS'ye derlenen kahve dosyaları
  • % 0.1 denetleyici - sunucu tarafı
  • % 0.1 model - sunucu tarafı
  • % 0.1 rota - sunucu tarafı
  • % 0.1 test - sunucu tarafı
  • % 0.1 Peruk
  • IP Kimlik Sahtekarlığına Karşı% 0.1 Güvenli
  • % 0,1 Üretim derleme betiği: uglification
  • % 0,0 Görünümlere yaklaşım: URL'ler "#!" İle başlar
  • % 0,0 Ön uç hizmetlerine ve ajax çağrılarına yaklaşım: $ resource kullanır

İşte MEAN.io ve MEAN.js arasında daha okunabilir bir formatta olan

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


13
Gönderdiğiniz iki yanıtı birleştirmenizi öneririm.
CMPSoares

8

Kimsenin Yeoman jeneratör açısal fullstack'tan bahsetmediğine şaşırdım . Bu, bir numaralı Yeoman topluluk jeneratörüdür, şu anda jeneratör sayfasında 14.js yıldızıyla Mean.js'nin 81 yıldızı (yeni MEANJS'in ne kadar yeni olduğu göz önüne alındığında adil bir karşılaştırma değil). Aktif olarak korunmuş gibi görünüyor ve bunu yazarken 2.05 sürümünde. MEANJS'ten farklı olarak, şablonlama için Swig kullanmaz. Dahili pasaportla yapı iskelesi yapılabilir.


@ SDude'un cevabı bundan bahsetti.
CMPSoares

Nerede? Cevabında veya yorumlarında hiçbir yerde göremiyorum.
honkskillet

Belki cevabınızı yanlış anladım ... Ama SDude iskele için "Mean.js'nin Yeoman Jeneratörlerini kullanıyor" dedi.
CMPSoares

1
Bunu tamamen unuttum. MEAN.js'yi uzun zaman önce jeneratör-açısal-fullstack'ın github yorumlarında öğrendim ... Cevaba ekledim.
joseldn

2
@CMPSoares ... ORTAM yığınlarını iskele eden birden fazla Yeoman jeneratörü var. Açısal Fullstack ve Mean.js pek çoğundan sadece ikisidir (tartışmasız en fazla etli olan ikisi?). Tüm Yeoman topluluk jeneratörlerine buradan bakabilirsiniz ... Yeoman Jeneratörler
honkskillet
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.