2015-09-17 18 views
8

Voglio usare l'elisir di Laravel con l'interfaccia utente semantica nel mio nuovo progetto.Cambiare il compito di Gail/elisir `orologio di Laravel

Nei documenti dell'interfaccia utente semantica, suggeriscono come includere le attività di gulp nel file gulp del progetto corrente. In Laravel, suggeriscono (brevemente) come estendere l'elisir. Ma come posso includere un'altra attività gulp nel comando watch?

Attualmente sto utilizzando gulp watch watch-ui, ma volevo includere l'attività watch-ui all'interno di watch. È possibile?

Questo è il mio attuale 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'); 
}); 

risposta

3

Se ho capito la tua domanda correttamente, si vuole aggiungere qualcosa al compito UI semantico. Tuttavia, non definiscono mai realmente un'attività, ma solo una funzione che è possibile assegnare a un'attività.

Non è possibile includere alcunché nell'attività semantic watch, a meno che non si desideri eseguire il patch dei file, ma è possibile aggiungere due attività di controllo e assicurarsi che entrambe funzionino.

Il seguente codice dovrebbe consentire di fare quello che ti serve:

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'); 
}); 

si può vedere come Semantic interfaccia utente definisce in realtà che i loro watch compiti dovrebbero utilizzare la funzione orologio qui: https://github.com/Semantic-Org/Semantic-UI/blob/master/gulpfile.js#L46

3

Se vuoi dire è possibile aggiungere la logica watcher personalizzato tramite l'API Elisir allora la risposta breve è no ...

... ma, dal momento che Elixir è un wrapper su Gulp, è possibile modificare gulp.tasks direttamente per ottenere lo stesso risultato: rinominare semplicemente l'attività watch definita da Elisir per qualcos'altro, quindi creare il proprio task watch che esegue entrambi l'orologio di Elixir e l'orologio UI semantico:

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

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


In Elixir per sé, la più vicina si arriva a osservatori personalizzato è un secondo argomento di mix.task() che prende una serie di percorsi di file da guardare e retrigger il compito sul cambiamento. Quindi, anche se si potrebbe fare qualcosa di simile ...

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

... che innescherebbe una ricostruzione completa su ogni cambiamento, che non è la stessa come il watch compito più granulare fornito da semantica.

Problemi correlati