2014-12-08 13 views
5

Meine Gruntfile wird gerade ziemlich groß und ich möchte sie in mehrere Dateien aufteilen. Ich habe viel gegoogelt und experimentiert, aber ich kann es nicht zur Arbeit bringen.Aufteilen Gruntfile

Ich möchte etwas wie folgt aus:

Gruntfile.js

module.exports = function(grunt) { 
    grunt.initConfig({ 
    concat: getConcatConfiguration() 
    }); 
} 

functions.js

function getConcatConfiguration() { 
    // Do some stuff to generate and return configuration 
} 

Wie kann ich functions.js in meine Gruntfile.js laden?

Antwort

6

Wie können Sie es tun:

Sie benötigen eine concat-Konfiguration zu exportieren, und erfordern es in Ihrem Gruntfile (Grund node.js Sachen)!

Ich würde empfehlen, alle taskspezifischen Konfiguration in eine Datei nach der Konfiguration benannt (in diesem Fall nannte ich es concat.js).

Außerdem bewegt i concat.js in einen Ordner grunt

Gruntfile.js

module.exports = function(grunt) { 
    grunt.initConfig({ 
    concat: require('grunt/concat')(grunt); 
    }); 
}; 

Grunzen/concat.js

module.exports = function getConcatConfiguration(grunt) { 
    // Do some stuff to generate and return configuration 
}; 

namens

Wie Sie es tun sollten:

Dort war schon jemand, der ein Modul namens load-grunt-config erstellt hat. das macht genau das, was du willst.

gehen Sie voran und legen Sie alles (wie oben erwähnt) in separate Dateien in einen Speicherort Ihrer Wahl (Standardordner ist grunt).

dann Standard gruntfile sollte wohl so aussehen:

module.exports = function(grunt) { 
    require('load-grunt-config')(grunt); 

    // define some alias tasks here 
}; 
+0

Ihr erster Teil der Antwort nicht funktioniert. Dies ist der Code, den ich verwendet habe und der Fehler, den ich bekam: http://pastebin.com/tkTPWNjg Ich glaube nicht, dass der zweite Teil Ihrer Antwort auf meine Situation zutrifft. Ich möchte keine Grunt-Aufgaben erstellen, ich möchte JavaScript-Funktionen erstellen, die ich verwenden kann. Ich lese die Dokumentation, aber ich kann nicht finden, wie man die Konfiguration dynamisch erzeugt (unter Verwendung einer Funktion) und seinen Rückgabewert der "concat" Eigenschaft zuweist. – rphilipsenbas

+0

Ich habe es schon gefunden. Sie müssen die erste Zeile von concat.js durch "exports.getConcatConfiguration = function() {" – rphilipsenbas

+0

ersetzen Jetzt tritt das nächste Problem auf: Die grunt-Variable ist in concat.js nicht verfügbar. – rphilipsenbas