Sto cercando di utilizzare Wiredep in un'attività Gulp per iniettare dipendenze Bower nel mio file index.html. Il seguente task (senza Wiredep) funziona correttamente.Perché Wiredep si verifica un errore con "dest.on non è una funzione" nel mio task gulp?
gulp.task('build', ['copy', 'assets'], function(){
return gulp.src('app/index.html')
.pipe(inject(gulp.src(['dist/assets/js/*.js', 'dist/assets/css/*.css'], {read: false}), {relative: true}))
.pipe(gulp.dest('dist'));
});
Ora ho provato ad aggiungere Wiredep ad esso:
var wiredep = require('wiredep');
gulp.task('build', ['copy', 'assets'], function(){
return gulp.src('app/index.html')
.pipe(wiredep())
.pipe(inject(gulp.src(['dist/assets/js/*.js', 'dist/assets/css/*.css'], {read: false}), {relative: true}))
.pipe(gulp.dest('dist'));
});
che si traduce in:
[09:45:11] TypeError: dest.on is not a function
at DestroyableTransform.Readable.pipe (C:\GIT\myApp\myApp-front\node_module
s\gulp-debug\node_modules\through2\node_modules\readable-stream\lib\_stream_read
able.js:533:8)
at Gulp.<anonymous> (C:\GIT\myApp\myApp-front\gulpfile.js:38:6)
at module.exports (C:\GIT\myApp\myApp-front\node_modules\gulp\node_modules\
orchestrator\lib\runTask.js:34:7)
at Gulp.Orchestrator._runTask (C:\GIT\myApp\myApp-front\node_modules\gulp\n
ode_modules\orchestrator\index.js:273:3)
at Gulp.Orchestrator._runStep (C:\GIT\myApp\myApp-front\node_modules\gulp\n
ode_modules\orchestrator\index.js:214:10)
at C:\GIT\myApp\myApp-front\node_modules\gulp\node_modules\orchestrator\ind
ex.js:279:18
at finish (C:\GIT\myApp\myApp-front\node_modules\gulp\node_modules\orchestr
ator\lib\runTask.js:21:8)
at C:\GIT\myApp\myApp-front\node_modules\gulp\node_modules\orchestrator\lib
\runTask.js:52:4
at f (C:\GIT\myApp\myApp-front\node_modules\gulp\node_modules\orchestrator\
node_modules\end-of-stream\node_modules\once\once.js:17:25)
at DestroyableTransform.onend (C:\GIT\myApp\myApp-front\node_modules\gulp\n
ode_modules\orchestrator\node_modules\end-of-stream\index.js:31:18)
ho cercato using Wiredep from the command line direttamente ed è gestita bene. Sono in esecuzione su Windows, utilizzando il nodo v4.2.2.
EDIT Se qualcuno incontra lo stesso problema, quindi la soluzione è modificare il compito di:
gulp.task('build', ['copy', 'assets'], function(){
wiredep({src:'dist/index.html'});
return gulp.src('dist/index.html')
.pipe(inject(gulp.src(['dist/assets/js/*.js', 'dist/assets/css/*.css'], {read: false}), {relative: true}))
.pipe(gulp.dest('dist'));
});
nota, che l'index.html viene copiato nella directory dist prima beeing iniettare.
Mi chiedo ancora perché non posso utilizzare gli stream per collegare le dipendenze.