很常见的操作是:存储用户配置选项并在子Generator之间共享。
例如,通常会共享首选项,例如语言(用户是否使用CoffeeScript?),样式选项(使用空格或制表符缩进)等。
这些配置可以通过Yeoman Storage API存储在.yo-rc.json文件中。 可通过generator.config对象访问此API。
8.1 常用方法
this.config.save()
此方法会将配置写入.yo-rc.json文件。 如果文件不存在,则save方法将创建它。
.yo-rc.json文件还确定了项目的根目录。 最佳实践:即使不使用存储空间,最好也要在app genrator中调用save。
注意,每次设置配置选项时,都会自动调用save方法。 因此,您通常无需显式调用它。
this.config.set()
set既可以采用键和关联值,也可以采用多个键/值的对象哈希。
请注意,值必须是JSON可序列化的(字符串,数字或非递归对象)。
this.config.get()
get将String键作为参数并返回关联的值。
this.config.getAll()
返回具有完整可用配置的对象。
返回的对象按值而不是引用传递。 即:如果要更改值,需要使用Set方法。
this.config.delete()
删除一个键
this.config.defaults()
接受选项的哈希值以用作默认值。 如果键/值对已经存在,则该值将保持不变。 如果缺少密钥,则添加。
.yo-rc.json
结构
.yo-rc.json文件是一个JSON文件,其中存储了来自多个Generator的配置对象。 每个Generator配置都具有名称空间,以确保Generator之间不会发生命名冲突。
这也意味着每个Generator配置都是沙盒化的,并且只能在子Generator之间共享。 无法使用存储API在不同Generator之间共享配置。 调用期间使用选项和参数在不同生成器之间共享数据。
.yo-rc.json文件如下:
{
"generator-backbone": {
"requirejs": true,
"coffee": true
},
"generator-gruntfile": {
"compass": false
}
}
对于最终用户,该结构非常全面。 这意味着,可以在该文件中存储高级配置,没有必要对每个选项都使用提示,高级用户可直接编辑该文件。
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 |