Ho diviso il mio gulpfile.js
in diversi file in una cartella /gulp
per organizzare il codice un po 'meglio. Ma ora voglio passare una variabile debug (boolean)
nei file che cambieranno il comportamento del comando gulp incluso (eventualmente userò gli argomenti della riga di comando, ma per ora voglio solo farlo funzionare con una variabile).Node.js: come faccio a passare la variabile globale in un file inserito tramite require()?
Il modo in cui ho avuto questa configurazione, utilizzando un metodo che ho visto in un pacchetto angolare/sorso Yeoman, sta utilizzando un modulo NPM chiamato require-dir
(che carica tutti i file * .js nella cartella /gulp
, dove ognuno ha un set di compiti di gulp impostati).
gulpfile.js:
var gulp = require('gulp'),
run = require('run-sequence'),
debug = true;
require('require-dir')('./gulp');
gulp.task('default', ['build', 'server', 'watch', '...']);
Che sarebbe caricare qualcosa di simile ...
gulp/build.js:
var gulp = require('gulp'),
plumber = require('gulp-plumber'),
...;
gulp.task('build', function() {
console.log(debug);
});
Così quando ho eseguito il comando gulp
, che esegue l'attività default
, caricherà build.js e quindi eseguirà e l'attività gulp build
. Ma sfortunatamente, sembra che debug
ritorni indefinito.
Come posso farlo funzionare?
stavo guardando utilizzando solo module.exports()
e il metodo del nodo require()
, ma non riuscivo a capire come ottenere il compito sorso all'interno del file incluso per dichiarare, in modo che potesse poi essere eseguito dal file principale gulpfile.js
(in la sequenza desiderata).
Qualcuno può offrire assistenza? Grazie
Quindi, teoricamente, dopo aver eseguito il metodo 'loadGulp()', il task gulp dovrebbe essere registrato, quindi dovrei essere in grado di eseguire 'gulp.start ('build')' e sarà disponibile ...? – BuildTester1
corretto. l'operazione 'require ('require-dir/gulp')' ora carica una funzione, e l'esecuzione di tali funzioni ora registra il task gulp, dopodiché può essere chiamato come qualsiasi altro. –
C'è un modo per rendere il file richiesto auto init al momento dell'importazione, quindi non devo chiamare la funzione? vale a dire. 'require ('gulp/build.js');' invece di 'var build = require ('gulp/build.js')'? – BuildTester1