MEAN.jsとMEAN.ioの違い


335

私はMEAN JavaScriptスタックを使用したかったのですが、独自のWebサイトとインストール方法のいずれかである2つの異なるスタック、mean.jsとmean.ioがあることに気付きました。それで私は自分にこの質問を尋ねました:「どちらを使用しますか?」

それで、この質問に答えるために、私はコミュニティにこれらの2つの違いは何であるかを説明できるかどうか尋ねます。そして、もし可能なら賛否両論?彼らは私にとてもよく似ているからです。


5
Meean.ioとMEAN.jsのどちらを選択するかは、Meteorが1.0をリリースし、箱から出してはるかに多くの機能を提供するようになったため、今のところ問題になるかもしれません。
Dan Dascalescu、2015年

回答:


374

基本的には同じです...どちらもテンプレートにswigを使用し、テスト、パスポート統合、nodemonなどにkarmaとmochaを使用しています。

なぜそんなに似ているのですか?Mean.jsはMean.ioの分岐であり、両方のイニシアチブは同じ人によって開始されまし ... Mean.ioは会社Linnovateの傘下にあり、その人(Amos Haviv)がこの会社とのコラボレーションを停止し、 Mean.jsを開始しました。理由について詳しくは、こちらをご覧ください

今...あなたが今見ることができる主な(または少しの)違いは:


足場とボイラープレートの生成

Mean.ioは「mean」という名前のカスタムcliツールを使用します
Mean.jsはYeomanジェネレーターを使用します


モジュール性

Mean.ioは、モジュール内にクライアントファイルとサーバーファイルを備えた、より自己完結型のノードパッケージモジュールを使用します。
Mean.jsはフロントエンド(angularの場合)でのみモジュールを使用し、それらをExpressに接続します。垂直モジュールにも取り組んでいましたが...


ビルドシステム

Mean.ioは最近飲み込むために移動した
Mean.jsがうなり声を使用しています


導入

どちらもそれぞれのリポジトリにDockerfileがあり、Mean.ioはGoogle Compute Engineワンクリックでインストールできますが、Mean.jsはDigital Oceanにワンクリックでインストールすることもできます


ドキュメンテーション

Mean.ioにはokドキュメントがあります
Mean.jsにはAWESOMEドキュメントがあります


コミュニティ

Mean.ioは元の定型文だったため、コミュニティが大きくなっています
。Mean.jsは勢いは少なく、着実に成長しています


個人レベルでは、MeanJSの哲学と開放性、およびMeanIOの牽引力とモジュール/パッケージアプローチのほうが好きです。どちらもすばらしいので、おそらくそれらを変更することになるので、どちらか一方を選択するのに失敗することはありません。それらを開始点として、また学習課題として使用してください。


代替の「平均」ソリューション

MEANは、「Mongo + Express + Angular + Node」をスタックのベースとして使用するボイラープレート/フレームワークを表す一般的な方法(Valeri Karpovによって造られた)です。このスタックを使用して、他の金種を使用するフレームワークを見つけることができます。それらのいくつかは、RAD(Rapid Application Development)およびSPAの構築に非常に適しています。例えば:

ハッカソンスターターもあります。AにはMEAN(「MEN」)はありませんが、揺れます。

楽しんで!


5
お返事ありがとうございます!hackathon-starterはすばらしく見えます!それは私が探しているものにもっと見えます。また、ほとんどがJSであり、認証が既に実装されており、これが最も難しい部分だと思っていました...すべてのオプションがわからないような気がしました...:-/また、後で登場しました、 hackathon-starterにはScaffolding and Boilerplate Generatorがありますか?しかし、それでもあなたの素晴らしい応答をありがとうございました!
CMPSoares 2014

7
どういたしまして。ええ、hackathon-starterについて私が気に入っているのは、完全なアカウント管理とワークフロー(パスワードを忘れた、確認メールなど)と、sendgrid、paypalなどとの統合です。MEAN.jsとMEAN.ioにはどちらも欠けているものです。それはある種のプロジェクトにとってクールなスターターです。
joseldn 2014

1
角度を付ける必要がない場合は、プロジェクトの開始点として最適です。プラットフォームの他の部分については心配しないでください。たぶんそれを行うプラグアンドプレイノードパッケージが見つかるでしょう。つまり、ロールの
gist.github.com/facultymatt/6370903

1
REST APIを使用するSOAで使用するのが良い状況です。あなたがタイトなスケジュールにある場合は、角度を落としてください。学習曲線はかなり急です...これは、フロントエンドにとっては「いい」ですが、重要なコンポーネントではありません。常に並行して学習し、次のプロジェクトで使用したり、後でこのプロジェクトに接続したりできます。
joseldn 2014

2
やあみんな!私はhackathon-starterから派生したものを見つけましたが、とても良いものでした:Skeleton!;-)
CMPSoares 2014年

66

まず、MEANM ongoDB、E xpress、A ngular、Nの頭字語です。 ode.jsの

これらの技術を組み合わせて「スタック」で使用することを一般的に識別します。「ようなものはありません MEANフレームワーク」。

LIOR KesosLinnovateは、この混乱の利点を取りました。彼はドメインMEAN.ioを購入し、いくつかのコードを https://github.com/linnovate/meanに配置しました

彼らは幸運にも多くの宣伝を受けました、そして、それらはMEANに関するますます多くの記事とビデオです。Googleの「平均フレームワーク」では、mean.ioがリストの最初にあります。

残念ながら、https://github.com/linnovate/meanのコードは設計が不十分のようですです。

2月に私は自分で罠に落ちました。サイトmean.ioにはキャッチーなデザインがあり、Githubリポジトリには1000を超えるスターがありました。品質に疑問を投げかけるという考えは、私の心にも通じませんでした。私はそれを試し始めましたが、うまくいかなかったことやコードの不可解な部分につまずくのにそれほど長くはかかりませんでした。

コミット履歴もかなり心配でした。彼らはコードとディレクトリ構造を何度も再設計し、新しい変更のマージには時間がかかりすぎています。

mean.ioとmean.jsの両方のコードの優れた点は、Bootstrap統合が付属していることです。PassportJsを介したFacebook、Github、Linkedinなどの認証も付属していますと、AngularJSのフロントエンドモデルと同期するMongoDBのバックエンドのモデル(記事)の例ます。

Linnovateのウェブサイトによると:

Linnovateはイスラエルで有数のオープンソース企業であり、国内で最も経験豊富なチームを持ち、ハイエンドのオープンソースソリューションの作成に取り組んでいます。Linnovateは、企業が次のWebプロジェクトを構築および維持するためのAZサービスを提供するイスラエルで唯一の企業です。

Webサイトから、彼らのコアスキルセットはDrupal(PHPコンテンツ管理システム)であるように見え、最近になってNode.jsとAngularJSを使い始めました。

最近Mean.jsブログを読んでいましたをがより明確になりました。私の理解では、メインのJavascript開発者(Amos Haviv)はLinnovateを離れてMean.jsに取り組み、MEAN.ioプロジェクトは、物事がどのように機能するかを理解するのを遅らせている初心者のNode.js開発者と一緒に残しました。

将来的には変更される可能性がありますが、今のところ、mean.ioの使用は避けます。クイックスタートのボイラープレートを探しているのであれば、mean.jsはmean.ioよりも優れたオプションのようです。


5
こんにちはクリス、Linnovateはnode.js / mongoの作業を3年以上行っています。何かが不十分に設計されていると感じ、それを改善する方法について建設的なアイデアがある場合は、プルリクエストとアイデアを受け入れます。依存性注入、パッケージサポート、平均cliをサポートするためにコアプロジェクトで行ったシフトを経験したと思います。私たちはプロジェクトを定型からフレームワークに移行しており、「成長の痛み」がありました。
Lior Kesos 14

3
私はあなたにプロジェクトを再訪して、あなたが平均的なパッケージを通してあなたのプロジェクトを拡張することを可能にする新しいパッケージシステムをレビューすることを勧めます。この機能はコミュニティに非常によく受け入れられており、フルスタックパッケージの最初の例の1つです(コアプロジェクトを拡張しながら、パッケージを通じてサーバー側とクライアント側の両方の機能を提供します)。
Lior Kesos 14

7
MEAN.ioとMEAN.jsを比較した後、純粋な成長によって。mean.jsは1年で93人の貢献者を700コミットで受け取りましたが、mean.ioは3年間で130人を受け取り、驚くほど低い1200コミットを受け取りました。(統計だけで、簡単に理解してください)明らかに、MEAN.jsはすぐに追いついています。ねえ、私はまだコードを調べていません。しかし基本的に、MEAN.ioはSteve Jobsを失ったAppleのように聞こえる。
Ezeewei 2015

19

ここでは、いくつかのアプリケーションスターター/ジェネレーターと、MEAN.js、MEAN.io、cleverstackなどの他のテクノロジーを並べて比較します。私は時間を見つけ、代替案を追加し続け、それが発生すると、潜在的に提供されるメリットのリストも増え続けます。現在、最大で1600前後です。その正確性または完全性を向上させる手助けをしたい場合は、次のリンクをクリックして、知っていることについてアンケートを行ってください。

アプリテクノロジープロジェクトを比較する

このデータベースから、システムは次のようなレポートを生成します。

MeanJSとMeanIOのトレードオフレポート


4
これは、あなたがまとめたかなり壮大なGoogleドキュメントです。
honkskillet 2014

個別のページを直接比較してドキュメントに追加しました。MEAN.jsとMEAN.ioを比較したものがあります
Dan

1
「許可が必要です」-アクセスできません。
Mörre

今では知識協同組合です。知っているいくつかのテクノロジーについてのアンケートに記入してください。ドキュメントdancancro.com/technology-questionnaires
Dan

13

私の比較スプレッドシートのスタータートレードオフシートには、各発電機間の包括的な1対1の比較があります。だからあなたのお気に入りについて話すために歪んだ方法で素晴らしいものを選ぶ必要はもうありません。

以下は、generator-angular-fullstackとMEAN.jsの間のものです。パーセンテージは、パーフェクトジェネレーターが100%になる私の個人的な重み付けに基づいた各利点の値です

generator- angular- fullstackは、MEANJS.orgが提供しない8%を提供します

  • 1.9%クライアント側エンドツーエンドテスト
  • 0.6%工場
  • 0.5%プロバイダー
  • 0.4%SASS
  • 0.4%減少
  • 0.4%コンパス
  • 0.4%デコレータ
  • 0.4%エンドポイントサブジェネレーター
  • 0.4%コメント
  • 0.3%FontAwesome
  • 0.3%サーバーをデバッグモードで実行
  • 0.3%保存ジェネレーターがファイルに回答
  • 0.2%一定
  • 0.2%開発ビルドスクリプト:......サードパーティのdepをCDNバージョンに置き換えます
  • 0.2%認証-Cookie
  • 0.2%認証-JSON Web Token(JWT)
  • 0.2%サーバー側のログ
  • 0.1%開発ビルドスクリプト:タスクを並行して実行してスピードアップ
  • 0.1%開発ビルドスクリプト:アセットファイルの名前を変更してブラウザーのキャッシュを防止
  • 0.1%開発ビルドスクリプト:エンドツーエンドのテストを実行
  • 0.1%プロダクションビルドスクリプト:安全な事前縮小
  • 0.1%プロダクションビルドスクリプト:CSSベンダープレフィックスを追加
  • 0.1%Herokuデプロイメントの自動化
  • 0.1%値
  • 0.1%ジェイド
  • 0.1%Coffeescript
  • 0.1%サーバーサイド認証ルート制限
  • 0.1%SASSバージョンのTwitter Bootstrap
  • 0.1%プロダクションビルドスクリプト:画像の圧縮
  • 0.1%OpenShiftデプロイメントの自動化

MeanJS.org。generator-angular-fullstackが提供しない9%を提供します

  • 3.7%専用/検索可能なユーザーグループ:1日以内の応答時間
  • 0.4%ルートを生成
  • 0.4%認証-Oauth
  • 0.4%構成
  • 国際化0.4%、ローカリゼーション
  • 0.4%入力アプリケーションプロファイル
  • 0.3%FEATURE(別名モジュール、エンティティ、クラッドモック)
  • 0.3%メニューシステム
  • 0.3%サブコンポーネントを作成するためのオプション
  • 0.3%テスト-クライアント側
  • 0.3%Javascriptパフォーマンス
  • 0.3%プロダクションビルドスクリプト:SEOの静的ページを作成する
  • 0.2%クイックインストール?
  • 0.2%専用/検索可能なユーザーグループ
  • 0.1%開発ビルドスクリプト:変更時に​​ビルドファイルをリロード
  • 0.1%開発ビルドスクリプト:JSにコンパイルされたコーヒーファイル
  • 0.1%コントローラー-サーバー側
  • 0.1%モデル-サーバー側
  • 0.1%ルート-サーバー側
  • 0.1%テスト-サーバー側
  • 0.1%スウィッグ
  • IPスプーフィングから0.1%安全
  • 0.1%プロダクションビルドスクリプト:uglification
  • 0.0%ビューへのアプローチ:URLは「#!」で始まります
  • フロントエンドサービスとajax呼び出しへの0.0%アプローチ:$ resourceを使用

これは、より読みやすい形式のMEAN.ioとMEAN.jsの間のものです

<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
投稿した2つの回答をマージすることをお勧めします。
CMPSoares 2014

8

Yeomanジェネレーターangular-fullstackについて誰も言及していないことに驚いています。これは最大のヨーマンコミュニティジェネレーターであり、現在、ジェネレーターページに 1490スターとMean.jsの81スターがあります(確かに、MEANJSの新しさを考えると、公平な比較ではありません)。私がこれを書いているとき、それは活発に維持されているようで、バージョン2.05です。MEANJSとは異なり、テンプレートにはSwigを使用しません。内蔵のパスポートで足場できます。


@SDudeの答えはそれを述べました。
CMPSoares 2014

どこ?彼の回答やコメントのどこにも見当たらない。
honkskillet 2014

多分私はあなたの答えを誤解したかもしれません...しかしSDudeは足場のために「Mean.jsがYeomanジェネレーターを使用する」と述べました。
CMPSoares 2014

1
これをすっかり忘れていました。MEAN.jsについては、generator-angular-fullstackのgithubコメントでかなり前に実際に学びました...答えに追加しました。
joseldn 2014

2
@CMPSoares ... MEANスタックを足場にする複数のYeomanジェネレーターがあります。Angular-FullstackとMean.jsは、そのうちの2つにすぎません(おそらく最も具体的な2つですか?)。ここですべてのヨーマンコミュニティジェネレーターを見ることができます... ヨーマンジェネレーター
honkskillet '25 / 07/25
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.