常见问题解答

项目的目标是什么?

什么是命令行界面?

什么是包管理器?

Yeoman 与 Grunt 或 Gulp 等构建工具有何不同?

Yeoman 与 Brunch 或 Ember-cli 等工具有何不同?

如何在 Bower 上注册或注销包?

Yeoman 项目是否会为流行的框架提供生成器?

Yeoman 使用什么许可证发布?

通过 GitHub 提交问题之前我应该做什么?

npm 似乎已经安装了 Yeoman,但 yo 仍然提示我“命令未找到”。

我遇到了 EMFILE, too many open files 错误。

我应该使用什么来记录我的应用程序?

如何禁用 Insight 或更新通知?

我可以在自定义 Web 服务器上使用实时重载吗?

使用 Yeoman 生成的 Web 应用程序克隆后我应该做什么?

如果 npm install -g yo 在 OS X 上失败并显示 `sh: node: command not found`,我该怎么办?

项目的目标是什么?

Yeoman 的短期目标是为开发人员提供改进的工具工作流程,以便他们能够减少在流程上花费的时间,并更多地专注于构建漂亮的 Web 应用程序。最初,我们希望使与开发人员习惯使用的现有框架和工具协作变得尽可能容易。

从长远来看,该项目还可以帮助开发人员使用 Web Components 等现代技术创建应用程序。

什么是命令行界面?

命令行界面是开发人员使用文本命令与系统交互的一种方式。在 Linux 或 OSX 上,这通常是通过终端完成的。在 Windows 上,可以使用命令 shell (cmd.exe) 或 PowerShell,但我们建议您改用 cmder 以获得更好的体验。

什么是包管理器?

包管理器是一种工具,用于自动化安装、升级、配置和管理项目依赖项的过程。npm(Node.js)、Bower(Web)、Pypi(Python)、Gem(Ruby)、Composer(PHP)、NuGet(.NET)等都是很好的包管理器示例。

Yeoman 与 Grunt 或 Gulp 等构建工具有何不同?

Yeoman 基于许多开源工具构建,提供了一种有见地的工作流程,帮助开发人员更轻松地完成常见任务。我们使用 GulpGrunt 作为任务运行器。它们为我们提供底层的构建过程和任务插件架构。

在此架构之上,我们高度定制了任务、配置文件和系统,这些任务、配置文件和系统可以很好地协同工作,并且还为开发人员提供了诸如生成器系统和 Bower 集成等功能。Yeoman 会负责配置您的配置文件并开箱即用地设置 Sass、CoffeeScript 和 Require.js。它还具有诸如线路连接、改进的 serveinit 等其他功能。

开发人员可以自由自定义 Yeoman 初始化的任何配置。

Yeoman 与 Brunch 或 Ember-cli 等工具有何不同?

我们非常喜欢 Brunch 和 Ember-cli 等工具,并且认为它们为希望使用 Backbone.js 和 Ember 等框架进行脚手架的开发人员提供了极佳的解决方案。借助 Yeoman 生成器系统,因为我们将 Rails 生成器系统移植到 Node 上,我们认为我们有机会将应用程序脚手架带到一个新的方向 - 一个使任何开发人员更容易编写脚手架、支持多个测试框架、捕获他们自己的样板代码并轻松重用它们等等的方向。

如何在 Bower 上注册或注销包?

可以使用 register 命令在 Bower 上注册包。例如 bower register myawesomepackagename git://github.com/youraccount/yourrepo。我们建议您在执行此操作之前阅读 Bower 的 文档,以确保您的存储库包含支持 install 所需的文件。

我们的目标是为开发人员和社区提供轻松创建丰富 Web 应用程序所需的工具。考虑到这一目标,我们将为我们的生成器系统提供一个很棒的 API(以及文档),并提供一些关于如何实现示例的示例,但将依靠社区为流行的框架创建和维护生成器。这将使我们能够专注于改进 Yeoman,而不会因维护大量生成器而分心。

您可以在 GitHub 上查看 官方支持的生成器完整列表

Yeoman 使用什么许可证发布?

Yeoman 在 BSD 许可证下发布。

通过 GitHub 提交问题之前我应该做什么?

请确保您阅读了 提交问题指南

npm 似乎已经安装了 Yeoman,但 yo 仍然提示我“命令未找到”。

这可能是因为您的 PATH 尚未包含全局 NPM 模块。更好的文档即将推出,但在此之前,请阅读 此评论此线程

当您通过 Homebrew 安装 Node 时,通常会出现这种情况,因为它将 Node 模块放在 PATH 中不存在的目录中。

来自 Homebrew

==> Caveats
Homebrew installed npm.
We recommend prepending the following path to your PATH environment
variable to have npm-installed binaries picked up:
  /usr/local/share/npm/bin

高级用户的快速修复方法是在您的 .bashrc 文件中添加以下内容:export PATH=/usr/local/share/npm/bin:$PATH

对于初学者,请运行 brew uninstall node,然后从其 网站 下载并安装 Node。

我遇到了 EMFILE, too many open files 错误。

EMFILE 表示您已达到 OS 并发打开文件的限制。对此我们无能为力,但您可以自行提高此限制。

ulimit -n [文件数量] 添加到您的 .bashrc/.zshrc 文件中以提高软限制。

如果达到 OS 硬限制,您可以按照此 StackOverflow 答案 来提高它。

我应该使用什么来记录我的应用程序?

查看 #152 票证以获取有关文档生成推荐解决方案的详细信息

如何禁用 Insight 或更新通知?

您可以使用命令行标志来禁用它们。例如 yo webapp --no-insight

Insight:--no-insight 更新通知:--no-update-notifier

您还可以将 yeoman_test 作为环境变量添加任何值以永久禁用两者。

我可以在自定义 Web 服务器上使用实时重载吗?

当然可以!您可以从 Gruntfile/Gulpfile 中删除 connect 任务,并手动将此代码段插入您的 HTML 中

<!-- livereload script -->
<script>document.write('<script src="http://'
 + (location.host || 'localhost').split(':')[0]
 + ':35729/livereload.js?snipver=1" type="text/javascript"><\/script>')
</script>

之后,只需像往常一样运行 serve 任务,即可享受自动页面刷新。

使用 Yeoman 生成的 Web 应用程序克隆后我应该做什么?

Yeoman 会为您创建一个 .gitignore 文件。此文件会将 node_modulesbower_components 文件夹添加到黑名单中。因此,要运行 serve 任务并下载 bower.json 文件中列出的 JavaScript 依赖项,您需要运行以下两个命令

$ npm install
$ bower install

并检查这些文件夹是否已正确创建。

如果 npm install -g yo 在 OS X 上失败并显示 `sh: node: command not found`,我该怎么办?

请尝试

sudo chmod a+rx /usr/local/bin /usr/local/bin/node

进行身份验证并再次运行它。说明:NPM 以 nobody 身份运行安装,如果无法访问二进制文件,这可能会导致安装失败,看起来好像 node 未找到。