|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #Browsersync - Gulp, SASS + Slow running tasks
-
- ## Installation/Usage:
-
- To try this example, follow these 4 simple steps.
-
- **Step 1**: Clone this entire repo
- ```bash
- $ git clone https://github.com/Browsersync/recipes.git bs-recipes
- ```
-
- **Step 2**: Move into the directory containing this example
- ```bash
- $ cd bs-recipes/recipes/gulp.task.sequence
- ```
-
- **Step 3**: Install dependencies
- ```bash
- $ npm install
- ```
-
- **Step 4**: Run the example
- ```bash
- $ npm start
- ```
-
- ### Additional Info:
-
-
-
- This example highlights a common problem where you don't want to reload
- the browser until a 2 or more slow-running tasks have completed. The solution
- is to create the intermediate task that ensures `browserSync.reload` is not
- called until both slow tasks are complete.
-
-
- ### Preview of `gulpfile.js`:
- ```js
- var gulp = require('gulp');
- var browserSync = require('browser-sync');
- var sass = require('gulp-sass');
- var reload = browserSync.reload;
- var through = require("through2");
-
- /**
- * A slow task
- */
- gulp.task('slow1', function () {
- return gulp.src('./app/*.html')
- .pipe(slowStream());
- });
-
- /**
- * Another Slow task
- */
- gulp.task('slow2', function () {
- return gulp.src('./app/*.html')
- .pipe(slowStream());
- });
-
- /**
- * Separate task for the reaction to a file change
- */
- gulp.task('html-watch', ['slow1', 'slow2'], reload);
-
- /**
- * Sass task for live injecting into all browsers
- */
- gulp.task('sass', function () {
- return gulp.src('./app/scss/*.scss')
- .pipe(sass())
- .pipe(gulp.dest('./app/css'))
- .pipe(reload({stream: true}));
- });
-
- /**
- * Serve and watch the html files for changes
- */
- gulp.task('default', function () {
-
- browserSync({server: './app'});
-
- gulp.watch('./app/scss/*.scss', ['sass']);
- gulp.watch('./app/*.html', ['html-watch']);
- });
-
- /**
- * Simulate a slow task
- */
- function slowStream () {
- return through.obj(function (file, enc, cb) {
- this.push(file);
- setTimeout(cb, 2000);
- });
- }
- ```
-
|