2017-02-15 34 views
0

我正在研究一箇中等大小的React應用程序。我有一個大口的任務,看起來像這樣:瀏覽器同步速度慢加載時間

gulp.task('js', function() { 
    browserify(paths.jsx) 
     .transform(babelify,{presets: ["es2015", "react"]}) 
     .bundle().on('error', $.notify.onError({ 
     title: "JSX Error", 
     message: "<%= error.message %>" 
    })) 
    .pipe(source('app.min.js')) 
    .pipe(buffer()) 
    .pipe($.sourcemaps.init({loadMaps: true})) 
    .pipe($.sourcemaps.write('.')) 
    .pipe(gulp.dest('app/components')); 
}); 

和手錶的任務,看起來像這樣:

gulp.task('default', ['styles', 'js','bs-client'],() => { 
    gulp.watch('app/**/*.jsx',['js']); 
    gulp.watch('app/components/app.min.js', reload); 
    gulp.watch(paths.srcCSS + '**/*.scss', ['styles']); 
}); 

編譯更改JS非常快:

[21:24:05] Starting 'js'... 
[21:24:05] Finished 'js' after 6.01 ms 

但瀏覽器同步似乎需要7-10秒之間纔會發現更改並重新加載頁面。如果我手動進入瀏覽器並在JS任務完成之後刷新並在瀏覽器同步重新加載觸發器之前進行刷新,我看不到任何更改生效(例如,添加到console.log中),所以我假設需要在幕後發生某種中介'步驟'。

爲什麼瀏覽器同步需要很長時間才能注意到JS任務已完成並重新加載瀏覽器?有什麼方法可以加快速度嗎?

回答

0

瀏覽器同步必須等待下面的事情:

  • 文件寫入到文件系統
  • 求異的文件中sourcemaps的
  • 創建和縮小的文件SASS的
  • 編譯文件

爲了加快這個過程,請分開以下內容:

  • 最少的步驟(複製文件,創建腳本標記)
  • 環境的具體步驟(sourcemaps,縮小)

成獨立的命名空間,以優化發展。

參考

相關問題