Perbedaan antara MEAN.js dan MEAN.io

335

Saya ingin menggunakan MEAN JavaScript Stack, tetapi saya perhatikan bahwa ada dua tumpukan yang berbeda dengan situs web mereka sendiri dan metode instalasi: mean.js dan mean.io. Jadi saya datang bertanya pada diri sendiri pertanyaan ini: "Yang mana yang saya gunakan?"

Jadi untuk menjawab pertanyaan ini saya bertanya kepada komunitas apakah Anda bisa menjelaskan apa perbedaan antara keduanya? Dan jika mungkin pro dan kontra? Karena mereka terlihat sangat mirip dengan saya.

CMPSoares
sumber
5
Memilih antara MEAN.io dan MEAN.js mungkin menjadi titik diperdebatkan sekarang bahwa Meteor telah merilis 1.0 dan menawarkan jauh lebih banyak di luar kotak .
Dan Dascalescu

Jawaban:

374

Mereka pada dasarnya sama ... Mereka berdua menggunakan swig untuk templating, mereka berdua menggunakan karma dan moka untuk tes, integrasi paspor, nodemon, dll.

Kenapa begitu mirip? Mean.js adalah cabang dari Mean.io dan kedua inisiatif dimulai oleh orang yang sama ... Mean.io sekarang berada di bawah payung perusahaan Linnovate dan sepertinya orang (Amos Haviv) menghentikan kolaborasinya dengan perusahaan ini dan mulai Mean.js. Anda dapat membaca lebih lanjut tentang alasannya di sini .

Sekarang ... perbedaan utama (atau sedikit) yang dapat Anda lihat sekarang adalah:


GENERASI PEMRANCANGAN DAN PEMESANAN BOILERPLATE

Mean.io menggunakan alat cli khusus bernama 'mean'
Mean.js menggunakan Yeoman Generators


MODULARITAS

Mean.io menggunakan modularitas paket node yang lebih lengkap dengan file klien dan server di dalam modul.
Mean.js menggunakan modul hanya di front-end (untuk sudut), dan menghubungkannya dengan Express. Meskipun mereka bekerja pada modul vertikal juga ...


BANGUN SISTEM

Mean.io baru-baru ini pindah ke teguk
Mean.js menggunakan gerutuan


PENYEBARAN

Keduanya memiliki Dockerfiles di repo masing-masing, dan Mean.io memiliki instalasi satu-klik di Google Compute Engine , sedangkan Mean.js juga dapat digunakan dengan instalasi satu-klik di Digital Ocean .


DOKUMENTASI

Mean.io memiliki dokumen ok
Mean.js memiliki dokumen AWESOME


MASYARAKAT

Mean.io memiliki komunitas yang lebih besar karena itu adalah boilerplate
Mean.js asli memiliki momentum yang kurang tetapi pertumbuhan yang stabil


Pada tingkat pribadi, saya lebih menyukai filosofi dan keterbukaan MeanJS dan lebih banyak pendekatan traksi dan modul / paket dari MeanIO. Keduanya bagus, dan Anda mungkin akan akhirnya memodifikasinya, jadi Anda tidak bisa salah memilih satu atau yang lain. Anggap saja sebagai titik awal dan sebagai latihan pembelajaran.


SOLUSI “MEAN” ALTERNATIF

MEAN adalah cara umum (diciptakan oleh Valeri Karpov ) untuk menggambarkan boilerplate / kerangka kerja yang menggunakan "Mongo + Express + Angular + Node" sebagai dasar tumpukan. Anda dapat menemukan kerangka kerja dengan tumpukan ini yang menggunakan denominasi lain, beberapa di antaranya sangat bagus untuk RAD (Pengembangan Aplikasi Cepat) dan membangun SPA. Misalnya:

Anda juga memiliki Hackathon Starter . Itu tidak memiliki A dari BERARTI (itu adalah 'MEN'), tetapi itu batu ..

Selamat bersenang-senang!

Joseph
sumber
5
Hai terima kasih atas tanggapannya! hackathon-starter terlihat keren! Terlihat lebih untuk apa yang saya cari. Ini juga sebagian besar JS dan memiliki otentikasi sudah dilaksanakan dan itulah yang saya pikir akan menjadi bagian tersulit ... Semua pikir saya masih merasa seperti saya tidak tahu semua pilihan saya ...: - / Juga muncul kemudian, Apakah hackathon-starter memiliki Scaffolding dan Boilerplate Generator? Namun tetap, Terima kasih banyak atas tanggapan Anda yang luar biasa!
CMPSoares
7
Sama-sama. Ya, apa yang saya juga suka tentang hackathon-starter adalah manajemen akun dan alur kerja yang lengkap (lupa kata sandi, email konfirmasi, dll) dan integrasi dengan sendgrid, paypal, dll ... Hal-hal yang tidak dimiliki oleh MEAN.js dan MEAN.io. Ini adalah starter keren untuk proyek jenis tertentu.
joseldn
1
Ini tentu merupakan titik awal yang bagus untuk proyek jika Anda tidak membutuhkan sudut. Jangan khawatir tentang bagian lain dari platform. Kemungkinan besar Anda akan menemukan paket plug & play node yang melakukan hal itu .. Yaitu: gist.github.com/facultymatt/6370903 untuk peran
joseldn
1
Situasi yang baik adalah menggunakannya dengan SOA tempat Anda mengonsumsi REST API. Jika Anda berada di jadwal yang ketat, maka jatuhkan sudut. Kurva pembelajaran cukup curam ... Ini adalah "bagus untuk dimiliki" untuk front-end, tetapi bukan komponen penting. Anda selalu dapat mempelajarinya secara paralel dan menggunakannya dalam proyek Anda berikutnya atau menghubungkannya nanti dengan yang ini.
joseldn
2
Hai teman-teman! Saya menemukan sesuatu yang berasal dari hackathon-starter tetapi sangat bagus juga: Skeleton ! ;-)
CMPSoares
66

Pertama-tama, MEAN adalah akronim untuk M ongoDB, E xpress, A ngular dan N ode.js.

Secara umum mengidentifikasi gabungan yang digunakan dari teknologi ini dalam "tumpukan". Tidak ada hal seperti itu sebagai " The MEAN kerangka".

Lior Kesos di Linnovate memanfaatkan kebingungan ini. Dia membeli domain MEAN.io dan menaruh beberapa kode di https://github.com/linnovate/mean

Untungnya mereka menerima banyak publisitas, dan ada lebih banyak artikel dan video tentang MEAN. Ketika Anda Google "kerangka kerja berarti", mean.io adalah yang pertama dalam daftar.

Sayangnya kode di https://github.com/linnovate/mean sepertinya tidak direkayasa dengan baik .

Pada bulan Februari saya jatuh dalam perangkap sendiri. Situs mean.io memiliki desain yang menarik dan repo Github memiliki 1000+ bintang. Gagasan mempertanyakan kualitas bahkan tidak melewati pikiran saya. Saya mulai bereksperimen dengan itu tetapi tidak butuh waktu terlalu lama untuk menemukan hal-hal yang tidak berfungsi, dan membingungkan potongan-potongan kode.

Sejarah komit juga cukup memprihatinkan. Mereka merekayasa ulang struktur kode dan direktori beberapa kali, dan menggabungkan perubahan baru terlalu memakan waktu.

Hal-hal baik tentang kode mean.io dan mean.js adalah keduanya disertai dengan integrasi Bootstrap. Mereka juga datang dengan Facebook, Github, Linkedin dll otentikasi melalui PassportJs dan contoh model (Artikel) di backend pada MongoDB yang disinkronkan dengan model frontend dengan AngularJS.

Menurut situs web Linnovate:

Linnovate adalah perusahaan Open Source terkemuka di Israel, dengan tim paling berpengalaman di negeri ini, yang didedikasikan untuk menciptakan solusi open source kelas atas. Linnovate adalah satu-satunya perusahaan di Israel yang memberikan layanan AZ untuk perusahaan untuk membangun dan memelihara proyek web berikutnya.

Dari situs web sepertinya kumpulan keterampilan inti mereka adalah Drupal (sistem manajemen konten PHP) dan hanya belakangan ini mereka mulai menggunakan Node.js dan AngularJS.

Akhir-akhir ini saya membaca Blog Mean.js dan segalanya menjadi lebih jelas. Pemahaman saya adalah bahwa pengembang Javascript utama (Amos Haviv) meninggalkan Linnovate untuk bekerja pada Mean.js meninggalkan proyek MEAN.io dengan orang-orang yang merupakan pengembang pemula Node.js yang lambat memahami bagaimana hal-hal seharusnya bekerja.

Di masa depan hal-hal dapat berubah tetapi untuk saat ini saya akan menghindari untuk menggunakan mean.io. Jika Anda mencari pelat baja untuk quickstart Mean.js tampaknya pilihan yang lebih baik daripada mean.io.

Chris Cinelli
sumber
5
Halo Chris, Linnovate telah melakukan pekerjaan node.js / mongo selama lebih dari 3 tahun, Kami menerima permintaan dan ide menarik jika Anda merasa ada sesuatu yang tidak dirancang dengan baik dan Anda memiliki ide konstruktif tentang bagaimana memperbaikinya. Saya menduga bahwa Anda mengalami perubahan yang kami lakukan dalam proyek inti untuk mendukung injeksi dependensi, dukungan paket dan cli rata-rata, kami telah memindahkan proyek dari pelat ketel ke kerangka kerja dan mengalami "rasa sakit yang tumbuh".
Lior Kesos
3
Saya mengundang Anda untuk meninjau kembali proyek dan meninjau sistem paket baru yang memungkinkan Anda memperluas proyek Anda melalui paket yang berarti. Fitur ini telah diterima dengan sangat baik oleh komunitas dan merupakan salah satu contoh pertama dari paket stack penuh (menyediakan fungsionalitas sisi server dan klien melalui sebuah paket sambil memperluas proyek inti).
Lior Kesos
7
Setelah membandingkan MEAN.io VS MEAN.js, dengan pertumbuhan murni. mean.js menerima 93 kontributor dalam 1 tahun dengan 700 komit sementara mean.j menerima 130 kontributor dalam 3 tahun dan mengejutkan rendah, 1200 komit. (hanya dengan statistik, bawa dengan sebutir garam) Jelas, MEAN.js mengejar cepat nyata. Hei, saya belum melihat kodenya. tetapi pada dasarnya, MEAN.io terdengar seperti Apple yang kehilangan Steve Jobs-nya.
Ezeewei
19

Berikut ini adalah perbandingan berdampingan dari beberapa starter aplikasi / generator dan teknologi lainnya termasuk MEAN.js, MEAN.io, dan cleverstack. Saya terus menambahkan alternatif ketika saya menemukan waktu dan ketika itu terjadi, daftar manfaat yang berpotensi diberikan terus bertambah juga. Hari ini terserah sekitar 1600. Jika ada yang ingin membantu meningkatkan keakuratan atau kelengkapannya, klik tautan berikutnya dan lakukan kuesioner tentang sesuatu yang Anda ketahui.

Bandingkan proyek teknologi aplikasi

Dari basis data ini, sistem menghasilkan laporan seperti berikut:

Laporan trade-off MeanJS vs MeanIO

Dan Cancro
sumber
4
Ini adalah dokumen google yang cukup epik yang telah Anda kumpulkan.
honkskillet
Saya menambahkan masing-masing halaman ke dokumen dengan perbandingan head to head. Ada satu yang membandingkan MEAN.js dan MEAN.io
Dan Cancro
1
"Anda memerlukan izin" - tidak dapat diakses.
Mörre
Sekarang menjadi koperasi pengetahuan. Cukup isi kuesioner di sini tentang beberapa teknologi yang Anda tahu dan saya akan memberi Anda akses ke doc dancancro.com/technology-questionnaires
Dan Cancro
13

Lembar Trade-off Starter dari spreadsheet perbandingan saya memiliki perbandingan satu-satu yang komprehensif antara masing-masing generator. Jadi tidak perlu lagi menyimpang dari hal-hal besar untuk dikatakan tentang favorit Anda.

Berikut ini adalah antara generator-angular-fullstack dan MEAN.js. Persentase adalah nilai untuk setiap manfaat berdasarkan bobot pribadi saya, di mana generator yang sempurna adalah 100%

generator- angular- fullstack menawarkan 8% yang tidak dimiliki MEANJS.org

  • 1,9% pengujian ujung ke ujung dari sisi klien
  • 0,6% pabrik
  • Penyedia 0,5%
  • 0,4% SASS
  • 0,4% KURANG
  • 0,4% Kompas
  • Dekorator 0,4%
  • 0,4% Endpoint subgenerator
  • 0,4% Komentar
  • 0,3% FontAwesome
  • 0,3% Jalankan server dalam mode debug
  • 0,3% Simpan jawaban generator ke file
  • 0,2% konstan
  • 0,2% Skrip pengembangan pembangunan: ...... ganti deps pihak ketiga dengan versi CDN
  • Otentikasi 0,2% - Cookie
  • Otentikasi 0,2% - JSON Web Token (JWT)
  • 0,2% Pencatatan sisi server
  • 0,1% Skrip pengembangan pengembangan: menjalankan tugas secara paralel untuk mempercepatnya
  • 0,1% Skrip pengembangan pembangunan: Mengganti nama file aset untuk mencegah caching browser
  • 0,1% Skrip pengembangan pengembangan: uji ujung ke ujung
  • 0,1% Skrip pembuatan produksi: pra-minifikasi aman
  • 0,1% Skrip pembuatan produksi: tambahkan awalan vendor CSS
  • 0,1% otomatisasi penyebaran Heroku
  • Nilai 0,1%
  • 0,1% Jade
  • 0,1% Coffeescript
  • 0,1% Pembatasan rute terotentikasi Serverside
  • 0,1% versi SASS dari Bootstrap Twitter
  • 0,1% Skrip pembuatan produksi: kompres gambar
  • 0,1% otomatisasi penyebaran OpenShift

MeanJS.org. menawarkan 9% yang tidak generator-angular-fullstack

  • 3,7% Kelompok pengguna khusus / dapat dicari: waktu respons sebagian besar di bawah sehari
  • 0,4% Menghasilkan rute
  • Otentikasi 0,4% - Oauth
  • Konfigurasi 0,4%
  • 0,4% i18n, lokalisasi
  • 0,4% Input profil aplikasi
  • 0,3% FITUR (alias modul, entitas, crud-mock)
  • Sistem Menu 0,3%
  • 0,3% Opsi untuk membuat subkomponen
  • 0,3% uji - sisi klien
  • 0,3% Kinerja Javascript
  • 0,3% Skrip pembuatan produksi: buat halaman statis untuk SEO
  • 0,2% Instalasi cepat?
  • 0,2% Kelompok pengguna khusus / dapat dicari
  • 0,1% Skrip pengembangan lanjutan: memuat ulang file build setelah perubahan
  • 0,1% Skrip pengembangan pengembangan: file kopi dikompilasi ke JS
  • 0,1% pengontrol - sisi server
  • 0,1% model - sisi server
  • 0,1% rute - sisi server
  • 0,1% uji - sisi server
  • 0,1% Meneguk
  • 0,1% Aman dari IP Spoofing
  • 0,1% Skrip pembuatan produksi: uglification
  • Pendekatan 0,0% untuk dilihat: URL dimulai dengan "#!"
  • Pendekatan 0,0% untuk layanan frontend dan panggilan ajax: menggunakan $ resource

Berikut ini adalah antara MEAN.io dan MEAN.js dalam format yang lebih mudah dibaca

<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
sumber
13
Saya sarankan Anda menggabungkan dua jawaban yang telah Anda kirim.
CMPSoares
8

Saya terkejut tidak ada yang menyebutkan generator Yeoman angular-fullstack . Ini adalah generator komunitas Yeoman nomor satu, dengan saat ini 1.490 bintang di halaman generator vs Mean.js '81 bintang (diakui bukan perbandingan yang adil mengingat bagaimana MEANJS baru adalah). Tampaknya aktif dipertahankan dan dalam versi 2.05 saat saya menulis ini. Tidak seperti MEANJS, itu tidak menggunakan Swig untuk templating. Itu bisa dibuat dengan paspor bawaan.

klakson
sumber
@ Jawaban SDude menyebutkannya.
CMPSoares
Dimana? Saya tidak melihatnya di mana pun dalam jawaban atau komentarnya.
honkskillet
Mungkin saya salah mengerti jawaban Anda ... Tapi SDude menyebutkan bahwa "Mean.js menggunakan Yeoman Generator" untuk perancah.
CMPSoares
1
Saya benar-benar lupa tentang ini. Saya benar-benar belajar tentang MEAN.js di komentar github generator-angular-fullstack dulu ... Saya telah menambahkannya ke jawabannya.
joseldn
2
@ CMPSoares ... Ada beberapa generator Yeoman yang menumpuk tumpukan MEAN. Angular-Fullstack dan Mean.js hanyalah dua dari banyak (bisa dibilang dua yang paling sempurna?). Anda dapat melihat semua generator komunitas Yeoman di sini ... Generator Yeoman
honkskillet