均值.js和 MEAN.io 之间的差异

我想使用MEAN JavaScript Stack,但我注意到有两个不同的堆栈,它们有自己的网站和安装方法:mean.js和 mean.io。所以我问自己这个问题:“我用哪一个?

因此,为了回答这个问题,我问社区您是否可以解释一下这两者之间有什么区别?如果可能的话,利弊?因为它们看起来和我非常相似。


答案 1

它们本质上是相同的...他们都使用swig进行模板化,他们都使用业力和摩卡进行测试,护照整合,nodemon等。

为什么这么相似?Mean.js是一个 Mean.io 的分叉,这两个举措都是由同一个人发起的......Mean.io 现在隶属于Linnovate公司,看起来这个人(Amos Haviv)停止了与这家公司的合作,开始了Mean.js。您可以在此处阅读有关原因的更多信息。

现在。。。您现在可以看到的主要(或小)差异是:


脚手架和样板生成

Mean.io 使用名为“mean”
Mean的自定义cli工具.js使用Yeoman生成器


模块性

Mean.io 使用更独立的节点包模块化,模块内部有客户端和服务器文件。
Mean.js只在前端使用模块(用于角度),并将它们与Express连接。虽然他们也在研究垂直模块...


构建系统

Mean.io 最近搬到了gulp
Mean.js使用咕噜声


部署

两者在各自的存储库中都有Dockerfiles,Mean.io 在Google Compute Engine上一键安装,而Mean.js也可以在Digital Ocean上一键安装进行部署。


文档

Mean.io 有好的文档
Mean.js有很棒的文档


社区

Mean.io 有一个更大的社区,因为它是最初的样板
Mean.js势头较小,但增长稳定


在个人层面上,我更喜欢MeanJS的哲学和开放性,更喜欢MeanIO的牵引力和模块/包方法。两者都很好,你最终可能会修改它们,所以你不会真的出错选择一个或另一个。只需将它们作为起点和学习练习即可。


替代的“平均”解决方案

MEAN是一种通用方法(由Valeri Karpov创造),用于描述以“Mongo + Express + Angular + Node”作为堆栈基础的样板/框架。您可以使用此堆栈找到使用其他名称的框架,其中一些框架非常适合RAD(快速应用程序开发)和构建SPA。例如:

你还有Hackathon Starter。它没有 MEAN 的 A(它是 'MEN'),但它很摇滚。

玩得愉快!


答案 2

首先,MEANMongoDB,Express,Angular和Node.js的首字母缩写。

通常标识这些技术在“堆栈”中的组合使用。没有“MEAN框架”这样的东西。

Linnovate的Lior Kesos利用了这种混乱。他买下了域名 MEAN.io,并把一些代码放在 https://github.com/linnovate/mean

幸运的是,他们得到了很多宣传,关于MEAN的文章和视频越来越多。当你谷歌“意味着框架”时,mean.io 是列表中的第一个。

不幸的是,https://github.com/linnovate/mean 的代码似乎设计得很差

二月份,我自己也落入了这个陷阱。该网站 mean.io 有一个吸引人的设计,Github存储库有1000多个星星。质疑质量的想法甚至没有在我脑海中流传。我开始尝试它,但没过多久就偶然发现了不起作用的东西,以及令人费解的代码片段。

提交历史也非常令人担忧。他们多次重新设计了代码和目录结构,合并新的更改太耗时。

mean.io 和mean.js代码的好处是它们带有Bootstrap集成。它们还通过PassportJs附带了Facebook,Github,LinkedIn等身份验证,以及MongoDB后端的模型(Article)示例,该模型与具有AngularJS的前端模型同步。

根据Linnovate的网站:

Linnovate是以色列领先的开源公司,拥有该国最有经验的团队,致力于创建高端开源解决方案。Linnovate是以色列唯一一家为企业提供A-Z服务以构建和维护下一个Web项目的公司。

从网站上看,他们的核心技能是Drupal(一个PHP内容管理系统),直到最近他们才开始使用Node.js和AngularJS。

最近我正在阅读Mean.js博客,事情变得更加清晰。我的理解是,主要的Javascript开发人员(Amos Haviv)离开了Linnovate,从事Mean.js将 MEAN.io 项目留给了新手Node.js开发人员,他们正在放慢对事情应该如何工作的理解。

将来事情可能会改变,但现在我会避免使用 mean.io。如果你正在寻找快速入门平均值的样板.js似乎比 mean.io 更好的选择。