2017-02-15 4 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']); 
}); 

Compiling изменение в 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, минификация)

в отдельных пространств имен для оптимизации разработки.

Список литературы

Смежные вопросы