82

在被说服学习和使用 Angular.js 之后,我打算启动一个具体的 Web UI 应用程序,以启动体验的学习轮。(该应用程序将是某种个人计划,待办事项列表,提醒,番茄钟技术导向,等等......)

我看过的一个教程视频,由 Angular 的作者编写,是关于最佳实践的。最佳实践之一是从angular-seed项目开始。

这就是我打算做的,但是在谷歌上搜索了一下之后,已经至少有两个其他项目声称是一个很好的起点:

  • angular-enterprise-seed
  • angular-sprout

我是初学者,但我喜欢长期投资。我应该担心使用其他东西angular-seed吗?我觉得现在问自己这个问题还为时过早,但如果已经有两个其他项目,也许有一些很好的理由。

4

5 回答 5

60

我发现虽然很多人使用各种种子项目,但对于 Angular 应用程序(或任何 javascript Web 应用程序)来说,最简单和最一致的起点是Yeoman

这个应用程序是一个脚手架工具,它允许你指定生成器来构建你的应用程序的内核,包括你想要的任何库(通过bower)和一个工作的grunt构建文件(大多数生成器都带有一个构建任务、服务器实时编辑任务和测试任务)

虽然像这样的应用程序必然是固执己见,但它产生的脚手架仍然非常通用。

例子:

mkdir my-app
cd my-app
npm install generator-angular
npm install generator-karma
yo angular
于 2013-05-17T15:25:28.340 回答
26

它们都有不同的优点,所以这取决于你想要做什么。我写了angular-enterprise-seed并且可以说出它的相对优点。

  1. 它与服务器无关。 这一点很重要,因为 AngularJS 的核心原则,也是使其具有吸引力的众多因素之一,就是它遵循客户端 MVC 范式。这意味着它与任何和所有服务器技术完全分离。许多现有的种子将 AngularJS 与服务器技术联系在一起,例如angular-sprout (NodeJS) 或grilled-feta (Google App Engine/Java)。在上述项目的情况下,如果您的系统上还没有 NodeJS 和/或 Java 环境,那么您将不得不经历几个循环​​才能看到种子出现。这可能会疏远 PHP 和 Python 开发人员,从而限制项目的社区。

  2. 在几秒钟内启动并运行。因为它与服务器无关,所以它可以在任何容器中运行(见鬼的文件系统)。建议的方法是从根目录运行“python -m SimpleHTTPServer”——这在 Mac 和 Linux 上是原生的,所以没有额外的步骤。

  3. 实时预览。 检查项目的状态很便宜,因为实时版本总是托管在 github 上。因为它与服务器无关,所以这是通过将 master 从 cron 作业复制到 gh-pages 分支来自动完成的。

  4. 造型丰富。 它包括 Twitter Bootstrap 和开箱即用的自定义/可构建 LESS,以及 Angular-UI、Angular-NG、字体和无数其他工具,以提供丰富的样式和响应能力。

  5. 小部件。与 Angular-Seed 和 Angular-Sprout 一样,Angular-Enterprise-Seed 举例说明了“最佳实践”布局、路由等。但它也提供了许多预构建的组件,可以立即下架并重复使用。这有点困难,因为它可能需要多种技术的融合。例如,为了创建网格示例,我结合了 angular-ui、angular-ng、angular-js 和 jquery 样式。有模态、分页、警报、网格等的组件示例。

如果您想了解各个部分的工作原理,Angular-seed 作为一项学术练习非常棒,但它会让您渴望一个更实质性的起点。

我没有使用角芽,所以我不能谈论它的优点。也许有一些空间可以合并 angular-sprout 和 angular-enterprise-seed?

于 2013-06-12T01:59:30.263 回答
18

我承认这是一个较老的问题,但它似乎有相当多的观点,因此推荐最近成为 Yeoman 和 angular-seed 的非常流行的替代品是有意义的:ng-boilerplate。ng-boilerplate 与 angular-seed 的不同之处在于它是从头开始为大型生产网络应用程序设计的,因此在我看来是比 angular-seed 更好的解决方案。

为了解释应用程序启动的 Yeoman 和 ng-boilerplate 方法之间的区别,我将引用 ngbp 的创建者Josh D. Miller的话:

约曼真棒。但是我对 AngularJS 的生成器的问题是它们是按层而不是按功能打包的。如果我们将所有控制器存储在“controllers”文件夹中,将所有服务存储在“services”文件夹中,等等,并且我们的所有测试完全在其他地方,那么重用我们的组件可能会非常具有挑战性。

这也是 Josh 在 Yeoman angular-generator 问题论坛上的一个很好的讨论,更深入地讨论了 ng-boilerplate 与 yeoman 的设置。

于 2014-05-22T20:26:44.110 回答
10

需要明确的是,Yeoman 不是发电机。Yeoman 是一种用于制作生成器的格式/系统。有几个使用 Yeoman 制作的生成器,您可以使用它们来生成 AngularJS 应用程序。人们经常错误地将其中一个或另一个称为“Yeoman 生成器”。但是有很多。迷茫了吗?Yeoman 并不是唯一的发电机制造系统。早午餐是另一种。

为了回答您的问题,这里是一个非常全面的并排比较许多 AngularJS 生成器,可以用来开始使用 AngularJS 制作 Web 应用程序。目前,它包含这些事物的 200 多个不同方面。其中之一是文件组织风格。因此,如果这对您很重要,您可以轻松查看哪些按功能组织文件。对我来说。

其中还有几个要添加。这个线程中提到的两个对我来说是新的。但是这种比较应该让您对这些选项以及它们的比较方式有一个很好的了解。它也是可编辑的,所以如果你们中的任何人是这些方面的专家,请随时分享你所知道的。

上帝只知道为什么人们不断地制造越来越多的这些东西,而不是仅仅帮助改进现有的东西。如果你有任何猜测,我很乐意解开这个谜团。

编辑:要访问该文档,我要求您填写一份问卷以分享您对某事的了解或游说专家这样做。

去这里做问卷: http ://www.dancancro.com/technology-questionnaires/

于 2014-06-21T14:29:34.957 回答
9

我也喜欢使用 Yeoman。尝试这些以获得良好的脚手架:

npm install -g generator-angular  # install generator
yo angular                        # scaffold out a AngularJS project
bower install angular-ui          # install a dependency for your project from Bower
grunt test                        # test your app
grunt server                      # preview your app
grunt                             # build the application for deployment
于 2013-07-25T15:44:42.030 回答