自定义 grunt 任务命名约定
Posted
技术标签:
【中文标题】自定义 grunt 任务命名约定【英文标题】:custom grunt task naming convention 【发布时间】:2015-05-10 17:50:51 【问题描述】:对于包含多个单词的自定义 grunt 任务的命名是否有任何约定?例如:grunt-json-schema grunt 插件有json_schema
task。一个名称包含破折号 (-
),另一个包含下划线 (_
)。
显然,dashed-name 不能用作 javascript 对象键:
grunt.initConfig(
json-schema: // WON'T work
它们必须用引号括起来:
grunt.initConfig(
'json-schema': // will work
我检查了所有官方插件(grunt-contrib-*
),但它们都只包含一个单词。提出这个问题的动机很简单:我只想遵守约定。
【问题讨论】:
【参考方案1】:简短回答:插件/自定义任务名称不必与特定配置对象名称相关联。
Grunt.js api 允许使用 method grunt.config
访问配置对象。任务和插件可以访问整个对象,而不仅仅是与名称相关的子对象。
例如,我可以创建一个名为 foo
的任务,该任务从 bar
访问配置:
grunt.initConfig(
bar:
baz: true
);
grunt.registerTask('foo', 'example custom task', function ()
var config = grunt.config('bar');
grunt.log.ok(config);
);
最佳实践:插件开发者应该为他们的配置对象命名键,类似于插件名称本身。这有助于减轻与可能引用类似内容的其他插件的冲突。
grunt.initConfig(
foo:
baz: true
);
grunt.registerTask('foo', 'example custom task', function ()
var config = grunt.config('foo');
grunt.log.ok(config);
);
【讨论】:
这并没有回答关于命名约定的问题。 它根据提供的上下文回答问题。如果你正在寻找一个字面上的答案:命名约定,答案是 Grunt 为他们自己的插件(grunt-contrib-copy
)保留了contrib-*
约定,除此之外,插件作者可以随意命名。 【参考方案2】:
我认为一般惯例是使用camelCase
处理由多个单词组成的任务。
【讨论】:
以上是关于自定义 grunt 任务命名约定的主要内容,如果未能解决你的问题,请参考以下文章