gulpfile.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. var gulp = require('gulp');
  2. var browser = require('browser-sync');
  3. var requireDir = require('require-dir');
  4. var forwardReference = require('undertaker-forward-reference');
  5. var port = process.env.SERVER_PORT || 3000;
  6. // Make Gulp accepting reference to tasks that are not declared yet, like in v3.
  7. gulp.registry(forwardReference());
  8. requireDir('./gulp/tasks');
  9. function browserReloadSync(done) {
  10. browser.reload();
  11. done();
  12. }
  13. // Builds the documentation and framework files
  14. gulp.task('build', gulp.series('clean', 'copy', 'sass', 'javascript', 'lint:graceful', 'docs:all'));
  15. // Starts a BrowerSync instance
  16. gulp.task('serve', gulp.series('build', function(done){
  17. browser.init({server: './_build', port: port});
  18. done();
  19. }));
  20. // Watch files for changes
  21. gulp.task('watch', function() {
  22. gulp.watch('docs/**/*', gulp.series('docs', browserReloadSync));
  23. gulp.watch(['docs/layout/*.html', 'docs/partials/*{html,hbs}', 'docs/assets/partials/*{html,hbs}', 'node_modules/foundation-docs/templates/*{html,hbs}'], gulp.series('docs:all', browserReloadSync));
  24. gulp.watch('scss/**/*', gulp.series('sass', browserReloadSync));
  25. gulp.watch(['docs/assets/scss/**/*', 'node_modules/foundation-docs/scss/**/*'], gulp.series('sass:docs', browserReloadSync));
  26. gulp.watch('js/**/*', gulp.series('javascript:foundation', browserReloadSync));
  27. gulp.watch(['docs/assets/js/**/*', 'node_modules/foundation-docs/js/**/*'], gulp.series('javascript:docs', browserReloadSync));
  28. });
  29. // Runs all of the above tasks and then waits for files to change
  30. gulp.task('default', gulp.series('serve', 'watch'));