Ich versuche Wiredep in einer Gulp-Aufgabe zu verwenden, um Bower-Abhängigkeiten in meine index.html-Datei zu injizieren. Die folgende Aufgabe (ohne WireDep) läuft einwandfrei.Warum gibt es in meiner Schluckaufgabe keine Fehlermeldung von "Wiredep" mit "dest.on ist keine Funktion"?
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'));
});
Jetzt habe ich versucht, Wiredep, um es hinzuzufügen:
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'));
});
was zur Folge hat:
[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)
versuchte ich using Wiredep from the command line direkt und es gut laufen. Ich verwende Windows unter Verwendung von Node v4.2.2.
EDIT Wenn jemand das gleiche Problem auftritt, dann ist die Abhilfe ist, um die Aufgabe zu ändern:
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'));
});
Beachten Sie, dass der index.html auf das dist-Verzeichnis kopiert wird, bevor beeing injiziert.
Ich frage mich immer noch, warum kann ich nicht Streams verwenden, um die Abhängigkeiten zu verdrahten.