2016-11-09 5 views
1

をスローします。しかし、cssInject taskはページをリロードせず、CSSの変更を注入しません。それは何もしません。私は.pipe(browserSync.reload());.pipe(browserSync.stream());を変更する場合は、変更内容を更新しますが、私はこのエラーを取得する+リロードする:BrowserSync.stream()が動作していない、browserSync.reload()は、これは私のガルプファイルでエラー

[BS] Reloading Browsers... 
[11:15:36] 'cssInject' errored after 22 ms 
[11:15:36] TypeError: Cannot read property 'on' of undefined 
    at DestroyableTransform.Readable.pipe (C:\Users\z\OneDrive\NewWebsite\node_modules\vinyl-fs\node_modules\readable-stream\lib\_stream_readable.js:516:7) 
    at Gulp.<anonymous> (C:\Users\z\OneDrive\NewWebsite\gulpfile.js:34:4) 
    at module.exports (C:\Users\z\OneDrive\NewWebsite\node_modules\orchestrator\lib\runTask.js:34:7) 
    at Gulp.Orchestrator._runTask (C:\Users\z\OneDrive\NewWebsite\node_modules\orchestrator\index.js:273:3) 
    at Gulp.Orchestrator._runStep (C:\Users\z\OneDrive\NewWebsite\node_modules\orchestrator\index.js:214:10) 
    at C:\Users\z\OneDrive\NewWebsite\node_modules\orchestrator\index.js:279:18 
    at finish (C:\Users\z\OneDrive\NewWebsite\node_modules\orchestrator\lib\runTask.js:21:8) 
    at C:\Users\z\OneDrive\NewWebsite\node_modules\orchestrator\lib\runTask.js:52:4 
    at f (C:\Users\z\OneDrive\NewWebsite\node_modules\once\once.js:17:25) 
    at DestroyableTransform.onend (C:\Users\z\OneDrive\NewWebsite\node_modules\end-of-stream\index.js:31:18) 
    at emitNone (events.js:72:20) 
    at DestroyableTransform.emit (events.js:166:7) 
    at C:\Users\z\OneDrive\NewWebsite\node_modules\vinyl-fs\node_modules\readable-stream\lib\_stream_readable.js:965:16 
    at nextTickCallbackWith0Args (node.js:420:9) 
    at process._tickCallback (node.js:349:13) 

誰も私が間違ってやっているお勧めすることはできますか?ありがとうございました。

EDITEDを追加しました:私はバージョン2.12.8のbrowser-syncを持っています。

答えて

1

{ stream: true }.reload()へ:

return gulp.src('.app/temp/styles/styles.css') 
    .pipe(browserSync.reload({ stream: true })); 

そして、私は問題のカップルを見

+0

しかし、まだそれはページをリロードしていません。手動でページをリロードすると変更が反映されますが、自動的にトリガーされることはありません。 – Newbie

+0

@newbieおそらくこれを変更しますか? 'watch( './app/ assets/styles/**/*。css'、 'cssInject');' – Nhan

+0

私はそれを修正したと思います。私は別のgulpタスク(bs-reload)をbrowserSync.reload()と一緒にcssInjectを依存関係として作成しました。私はgulp watchタスクの中でcssInjectの代わりにgulpを使ってbs-reloadを開始しました。ページをリロードします。私はなぜ、私はbrowserSyncストリームを動作させる方法がわからないのですが、今のところそれを行う必要があります。 – Newbie

0

変更 - あなたはgulp.startを使用し、私のコメントで述べたように。あなたは簡単に一つのタスクに望んで行うことができますので、私はあなたの「cssInject」タスクと「スタイル」タスクを組み合わせ

gulp.watch('./app/assets/styles/**/*.css', ['styles']); 

gulp.task('styles', function() { 
    return gulp.src('./app/assets/styles/styles.css') 
    .pipe(postcss([cssImport, simplevars, nested, autoprefixer])) 
    .pipe(gulp.dest('./app/temp/styles')) 
    .pipe(browserSync.reload({ stream:true })); 
}); 

を試してみてください。 browserSync.reload呼び出しは、ページをリロードするのではなく、変更されたファイルを挿入しようとします。

関連する問題