2015-03-09 1 views
7

Gibt es eine Konvention in Bezug auf die Benennung von benutzerdefinierten Grunt Aufgaben, die mehr als ein Wort enthalten? Zum Beispiel: grunt-json-schema grunt plugin hat json_schema task. Ein Name enthält Bindestriche (-), der andere enthält Unterstriche (_).Benutzerdefinierte Grunt Aufgabe Benennungskonvention

Offensichtlich strichName kann nicht als JavaScript-Objekt-Schlüssel verwendet werden:

grunt.initConfig({ 
    json-schema: { // WON'T work 

sie in Anführungszeichen eingeschlossen werden:

grunt.initConfig({ 
    'json-schema': { // will work 

Ich habe alle offiziellen Plugins (grunt-contrib-*) aber sie bestehen alle aus nur einem Wort. Die Motivation für diese Frage ist einfach: Ich möchte nur Konventionen befolgen.

Antwort

-1

Kurze Antwort: Plug-in/benutzerdefinierte Aufgabennamen müssen nicht mit einem bestimmten Konfigurationsobjektnamen korrelieren.

Die Grunt.js-API ermöglicht den Zugriff auf das Konfigurationsobjekt unter Verwendung der methodgrunt.config. Aufgaben & Plugins haben Zugriff auf das gesamte Objekt, nicht nur auf das Unterobjekt, das mit dem Namen korreliert.

Zum Beispiel könnte ich eine Aufgabe namens erstellen foo, die die Konfiguration von bar greift:

grunt.initConfig({ 
    bar: { 
     baz: true 
    } 
}); 

grunt.registerTask('foo', 'example custom task', function() { 
    var config = grunt.config('bar'); 
    grunt.log.ok(config); 
}); 

Best Practice: Plugin-Entwickler sollten die Schlüssel für ihr Config Objekt ähnlich den Plugin-Namen selbst nennen. Dies hilft Konflikte mit anderen Plugins zu mildern, die ähnliche Referenzen haben könnten.

grunt.initConfig({ 
    foo: { 
     baz: true 
    } 
}); 

grunt.registerTask('foo', 'example custom task', function() { 
    var config = grunt.config('foo'); 
    grunt.log.ok(config); 
}); 
+0

Dies beantwortet nicht die Frage zur Namenskonvention. – phobos2077

+0

Es beantwortet die Frage basierend auf dem Kontext zur Verfügung gestellt. Wenn Sie nach einer wörtlichen Antwort zur Namenskonvention suchen, lautet die Antwort, dass Grunt die 'contrib- *' - Konvention für ihre eigenen Plugins ('grunt-contrib-copy') vorbehält, abgesehen davon ist ein Plugin-Autor kostenlos wie auch immer sie wünschen. – theaccordance

0

Ich denke, die allgemeine Konvention camelCase für Aufgaben zu verwenden, die aus mehreren Wörtern bestehen.