2015-09-17 14 views
8

Ich möchte Laravels Elixier zusammen mit Semantic UI in meinem neuen Projekt verwenden.Ändern Laravels Gulp/Elixir "Uhr" Aufgabe

In semantischen UI-Dokumenten schlagen sie vor, wie sie ihre Schluck-Aufgaben in die aktuelle gulp-Datei des Projekts einbeziehen. In Laravel schlagen sie (kurz) vor, wie man Elixir verlängert. Aber wie kann ich eine weitere Schluckaufgabe zum watch Befehl hinzufügen?

Momentan laufe ich gulp watch watch-ui, aber ich wollte die watch-ui Aufgabe in watch einfügen. Ist es möglich?

Dies ist meine aktuelle gulpfile.js:

var gulp  = require('gulp'); 
var elixir = require('laravel-elixir'); 
var semantic = { 
    watch: require('./resources/assets/semantic/tasks/watch'), 
    build: require('./resources/assets/semantic/tasks/build') 
}; 

gulp.task('watch-ui', semantic.watch); 
gulp.task('build-ui', semantic.build); 

elixir(function(mix) { 
    mix.task('build-ui'); 
}); 

Antwort

3

Wenn ich Ihre Frage richtig verstanden, Sie etwas zu dem Semantic UI Aufgabe hinzufügen möchten. Sie definieren jedoch nie wirklich eine Aufgabe, sondern nur eine Funktion, die Sie einer Aufgabe zuweisen können.

Sie können nichts in die Task aufnehmen, es sei denn, Sie möchten Dateien patchen, aber Sie können zwei Überwachungsaufgaben hinzufügen und sicherstellen, dass beide ausgeführt werden.

Der folgende Code sollte Ihnen ermöglichen, zu tun, was Sie brauchen:

var gulp  = require('gulp'); 
var elixir = require('laravel-elixir'); 
var semantic = { 
    watch: require('./resources/assets/semantic/tasks/watch'), 
    build: require('./resources/assets/semantic/tasks/build') 
}; 

// Define a task for the semantic watch function. 
gulp.task('semantic-watch', semantic.watch); 

// Define the main watch task, that is depended on the semantic-watch, this will run both watch tasks when you run this one. 
gulp.task('watch', ['semantic-watch'], function() { 
    // Do your own custom watch logic in here. 
}); 

gulp.task('build-ui', semantic.build); 

elixir(function(mix) { 
    mix.task('build-ui'); 
}); 

Sie wie Semantic UI tatsächlich definiert sehen können, dass ihre watch Aufgaben hier die Uhr-Funktion verwendet werden soll: bedeuten https://github.com/Semantic-Org/Semantic-UI/blob/master/gulpfile.js#L46

3

Wenn Sie ist es möglich, benutzerdefinierte Watcher Logik über die Elixir API hinzuzufügen, dann ist die kurze Antwort keine ...

... aber, da Elixir ist ein Wrapper oben auf Gulp, können Sie ändern gulp.tasks direkt, um das gleiche Ergebnis zu erreichen: einfach benennen Sie die watch Aufgabe, die Elixir zu etwas anderem definiert, dann erstellen Sie Ihre eigenen watch Aufgabe, die beide ausgeführt wird Elixier der Uhr und das Semantic UI Uhr:

gulp.tasks['watch-elixir'] = gulp.tasks.watch; 

gulp.task('watch', ['watch-elixir', 'watch-ui']); 


In Elixir selbst, in der Nähe Sie benutzerdefinierte Beobachter erhalten, ist ein zweites Argument zu mix.task(), die eine Reihe von Dateipfaden nimmt zu beobachten und triggert die Aufgabe bei Änderung. Also, auch wenn Sie etwas tun könnte, wie ...

mix.task('build-ui', './resources/assets/semantic/src/**/*') 

... das auslösen würde ein voll auf jeder Änderung neu zu erstellen, die nicht die gleiche wie die detaillierteren watch Aufgabe durch semantische vorgesehen ist.