编写自己的Yeoman生成器-7.管理配置

存储用户配置选项并在子生成器之间共享它们是一项常见任务。例如,通常共享首选项,如语言(用户使用CoffeeScript吗?),样式选项(用空格或制表符缩进)等。

这些配置可以通过Yeoman Storage API存储在.yo-rc.json文件中。可以通过generator.config对象访问此API 。

以下是您将使用的一些常用方法。

方法

this.config.save()

此方法将配置写入.yo-rc.json文件。如果该文件尚不存在,则该save方法将创建该文件。

.yo-rc.json文件还确定项目的根目录。因此,即使您没有使用任何存储设备,也始终将您的:app生成器在内部调用save视为最佳做法。

另请注意,save每次set配置选项时都会自动调用该方法。所以你通常不需要明确地调用它。

this.config.set()

set 要么获取key和关联值,要么使用多个键/值的对象散列。

请注意,值必须是JSON可序列化的(字符串,数字或非递归对象)。

this.config.get()

getStringkey作为参数并返回关联的值。

this.config.getAll()

返回完整可用配置的对象。

返回的对象按值传递,而不是引用。这意味着您仍然需要使用该set方法来更新配置存储。

this.config.delete()

删除key。

this.config.defaults()

接受用作默认值的选项哈希值。如果已存在键/值对,则该值将保持不变。如果缺少某个key,则会添加该key。

yo-rc.json 结构体

该.yo-rc.json文件是一个JSON文件,其中存储了来自多个生成器的配置对象。每个生成器配置都是命名空间,以确保生成器之间不会发生命名冲突。

这也意味着每个生成器配置都是沙箱,并且只能在子生成器之间共享。您无法使用存储API在不同的生成器之间共享配置。在调用期间使用选项和参数在不同的生成器之间共享数据。

这是.yo-rc.json文件在内部的样子:

1
2
3
4
5
6
7
8
9
{
"generator-backbone": {
"requirejs": true,
"coffee": true
},
"generator-gruntfile": {
"compass": false
}
}

该结构对您的最终用户来说非常全面。这意味着,您可能希望在此文件中存储高级配置,并要求高级用户在没有意义的情况下直接编辑文件,以便为每个选项使用提示。

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :