Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. "use strict";
  2.  
  3. var gulp = require('gulp');
  4. var connect = require('gulp-connect'); //Runs a local dev server
  5. var open = require('gulp-open'); //Open a URL in a web browser
  6. var browserify = require('browserify'); // Bundles JS
  7. var reactify = require('reactify'); // Transforms React JSX to JS
  8. var source = require('vinyl-source-stream'); // Use conventional text streams with Gulp
  9. var concat = require('gulp-concat'); //Concatenates files
  10. var lint = require('gulp-eslint'); //Lint JS files, including JSX
  11. var fontAwesome = require('node-font-awesome');
  12.  
  13. var config = {
  14. port: 9005,
  15. devBaseUrl: 'http://localhost',
  16. paths: {
  17. html: './src/*.html',
  18. js: './src/**/*.js',
  19. images: './src/images/*',
  20. css: [
  21. // 'node_modules/bootstrap/dist/css/bootstrap.min.css',
  22. // 'node_modules/bootstrap/dist/css/bootstrap-theme.min.css',
  23. 'node_modules/bootswatch/flatly/bootstrap.css',
  24. 'node_modules/toastr/toastr.css',
  25. 'node_modules/font-awesome/css/font-awesome.css'
  26. ],
  27. dist: './dist',
  28. fonts: 'node_modules/font-awesome/fonts/*',
  29. mainJs: './src/main.js'
  30. }
  31. }
  32.  
  33. //Start a local development server
  34. gulp.task('connect', function() {
  35. connect.server({
  36. root: ['dist'],
  37. port: config.port,
  38. base: config.devBaseUrl,
  39. livereload: true
  40. });
  41. });
  42.  
  43. gulp.task('open', ['connect'], function() {
  44. gulp.src('dist/index.html')
  45. .pipe(open({ uri: config.devBaseUrl + ':' + config.port + '/'}));
  46. });
  47.  
  48. gulp.task('html', function() {
  49. gulp.src(config.paths.html)
  50. .pipe(gulp.dest(config.paths.dist))
  51. .pipe(connect.reload());
  52. });
  53.  
  54. gulp.task('js', function() {
  55. browserify(config.paths.mainJs)
  56. .transform(reactify)
  57. .bundle()
  58. .on('error', console.error.bind(console))
  59. .pipe(source('bundle.js'))
  60. .pipe(gulp.dest(config.paths.dist + '/scripts'))
  61. .pipe(connect.reload());
  62. });
  63.  
  64. gulp.task('css', function() {
  65. gulp.src(config.paths.css)
  66. .pipe(concat('bundle.css'))
  67. .pipe(gulp.dest(config.paths.dist + '/css'));
  68. });
  69.  
  70. gulp.task('lint', function() {
  71. return gulp.src(config.paths.js)
  72. .pipe(lint({config: 'eslint.config.json'}))
  73. .pipe(lint.format());
  74. });
  75.  
  76. // Migrates images to dist folder
  77. // Note that I could even optimize my images here
  78. gulp.task('images', function () {
  79. gulp.src(config.paths.images)
  80. .pipe(gulp.dest(config.paths.dist + '/images'))
  81. .pipe(connect.reload());
  82.  
  83. //publish favicon
  84. gulp.src('./src/favicon.ico')
  85. .pipe(gulp.dest(config.paths.dist));
  86. });
  87.  
  88. gulp.task('watch', function() {
  89. gulp.watch(config.paths.html, ['html']);
  90. gulp.watch(config.paths.js, ['js', 'lint']);
  91. });
  92.  
  93. gulp.task('fonts', function () {
  94. gulp.src(config.paths.fonts)
  95. .pipe(gulp.dest(config.paths.dist + '/fonts'));
  96. });
  97.  
  98. gulp.task('default', ['html', 'js', 'css', 'images', 'lint', 'open', 'watch', 'fonts']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement