自定义grunt任务命名约定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义grunt任务命名约定相关的知识,希望对你有一定的参考价值。

是否有关于命名包含多个单词的自定义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-*),但它们都只包含一个单词。这个问题的动机很简单:我只想遵循惯例。

答案

我认为一般惯例是使用camelCase来处理由多个单词组成的任务。

另一答案

简答:插件/自定义任务名称不必与特定的配置对象名称相关联。

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更新用于自定义任务

如何为caliburn.micro添加自定义约定?

部分类文件的命名约定

剖析Grunt任务配置

在 Grunt 任务中运行命令

有没有办法关闭代码片段中的命名建议?