<%= yeoman.app %> 和 <%= yeoman.dist %> 变量在 gruntfile 中的作用是什么?

46

我经常在一些样例gruntfiles中看到使用 <%= yeoman.app %> 和 <%= yeoman.dist %> 环境变量。我自己没有使用过,但是这些变量是从哪里获取的?

另外,是否可以覆盖这些变量?需要使用yeoman才能使用这些特定的环境变量吗?

我已经阅读了文档FAQ。还有其他资源讨论这个问题吗?

1个回答

71

这些变量是从哪里得到的?

从广义上来说,可以阅读Gruntfile example,因为它开始解释<%= variable %>语法。如果您是Grunt的新手,请将该页面加入书签,因为其中有一些内容一开始看起来似乎不重要,但在反复阅读时会很有用。

更具体地说,是从Yeoman生成器中获取的。例如,如果我运行最新的generator-angular,它生成的Gruntfile.js包括以下代码:

yeoman: {
  // configurable paths
  app: require('./bower.json').appPath || 'app',
  dist: 'dist'
}

所以你可以看到,至少从我使用的生成器来看,<%= yeoman.app %>将默认指向名为“app”的目录,<%= yeoman.dist %>将指向“dist”。如果我粘贴生成器为我创建的整个Gruntfile,您还将看到许多构建和测试应用程序的任务都使用了这些内容。
正如您所想象的那样(并且在Gruntfile example中所见),这不仅限于yeoman,因为它是Grunt的一部分,所以您可以使用它来保持Gruntfile的简洁和DRY是否可以覆盖这些变量? 是的。我引用上面的代码可以更改,以便appdist指向不同的位置。对于由yeoman生成器创建的应用程序,这样做可能会导致更多的工作不值得。yeoman生成器的整个重点是自动化工作,因此您无需费心处理这些事情。每次使用生成器时,您都会获得一个样板设置。
除非你正在编写自己的生成器或从头开始编写应用程序,并且“借用”了生成器的某些部分,否则你可以将它们设置为对你的应用程序重要的任何内容。 在使用这些特定的环境变量之前,是否需要安装yeoman? 不需要,但如果你从头开始构建应用程序,我不认为有必要使用名称“yeoman”。如果你正在使用yeoman生成的应用程序,则我不认为有理由更改它。

Matt,感谢你详尽而深思熟虑的回答。 - chrisjlee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接