Advertisement
Guest User

Untitled

a guest
Jul 30th, 2015
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. /**********************************
  2. * Plugins Loading
  3. **********************************/
  4. var gulp = require('gulp'),
  5. gutil = require('gulp-util'),
  6. concat = require('gulp-concat'),
  7. compass = require('gulp-compass'),
  8. minifyHTML = require('gulp-minify-html'),
  9. imagemin = require('gulp-imagemin'),
  10. pngquant = require('imagemin-pngquant'),
  11. history = require('connect-history-api-fallback'),
  12. connect = require('gulp-connect'),
  13. usemin = require('gulp-usemin'),
  14. uglify = require('gulp-uglify'),
  15. minifyCSS = require('gulp-minify-css'),
  16. clean = require('gulp-clean'),
  17. wiredep = require('wiredep').stream;
  18.  
  19. /**********************************
  20. * Source Specifications
  21. **********************************/
  22.  
  23. var jsSources = [
  24. 'app/app.js',
  25. 'app/shared/**/*.js',
  26. 'app/components/**/*.js'
  27. ];
  28. var templates = ['app/**/*.tpl.html'];
  29. var index = ['app/index.html'];
  30. var sassSources = ['app/app.scss'];
  31. var images = ['app/assets/images/*.{jpg,jpeg,gif,png,svg}'];
  32. var bower = 'bower_components';
  33. var fontAwesome = 'font-awesome/fonts/**/*.{ttf,woff,eof,svg,eot,otf,woff2}';
  34. /**
  35. * Build Folders
  36. */
  37. var development = 'builds/development/';
  38. var production = 'builds/production/';
  39.  
  40. /**********************************
  41. * Tasks
  42. **********************************/
  43.  
  44. /**
  45. * Task to Log stuff (Imported from Gulp-Utils)
  46. */
  47. gulp.task('log', function () {
  48. gutil.log('Gulp Workflows Example');
  49. });
  50.  
  51. /**
  52. * Clean folders
  53. */
  54. gulp.task('clean', function () {
  55. gulp.src('builds')
  56. .pipe(clean())
  57. .on('error', gutil.log);
  58. });
  59.  
  60. /**
  61. * Task for JavaScript Concatination.
  62. */
  63. gulp.task('js', function () {
  64. gulp.src(jsSources)
  65. .pipe(concat('app.js'))
  66. .on('error', gutil.log)
  67. .pipe(gulp.dest(development + 'js'))
  68. .pipe(connect.reload());
  69. });
  70.  
  71. /**
  72. * Task for JavaScript Uglification
  73. */
  74. gulp.task('uglify', function() {
  75. console.log('uglify Task');
  76. });
  77.  
  78. /**
  79. * Task for SASS Compilation using Compass
  80. */
  81. gulp.task('compass', function () {
  82. gulp.src(sassSources)
  83. .pipe(compass({
  84. sass: 'app',
  85. image: 'app/assets/images/',
  86. style: 'expanded'
  87. }))
  88. .on('error', gutil.log)
  89. .pipe(gulp.dest( development + 'css'))
  90. .pipe(connect.reload());
  91. });
  92.  
  93. /**
  94. * Task to copy index
  95. */
  96. gulp.task('copyIndex', function() {
  97. gulp.src(index)
  98. .pipe(minifyHTML())
  99. .pipe(gulp.dest(development))
  100. .pipe(connect.reload());
  101. });
  102.  
  103. /**
  104. * Task to Copy templates
  105. */
  106. gulp.task('copyTemplates', function() {
  107. gulp.src(templates)
  108. .pipe(minifyHTML())
  109. .pipe(gulp.dest(development))
  110. .pipe(connect.reload());
  111. });
  112. /**
  113. * Copy Fonts
  114. */
  115. gulp.task('copyFontAwesome', function() {
  116. gulp.src( bower + '/' + fontAwesome)
  117. .pipe(gulp.dest(development + 'fonts'));
  118. });
  119.  
  120. /**
  121. * Copy Images
  122. */
  123. gulp.task('copyImages', function() {
  124. gulp.src(images)
  125. .pipe(imagemin({
  126. progressive: true,
  127. svgoPlugins: [{removeViewBox: false}],
  128. use: [pngquant()]
  129. }))
  130. .pipe(gulp.dest(development + 'images'))
  131. .pipe(connect.reload());
  132. });
  133.  
  134. /**
  135. * Task for Plugin file Concatination.
  136. */
  137. gulp.task('plugins', function () {
  138. gulp.src('app/assets/plugins/**/*.js')
  139. .pipe(concat('plugins.js'))
  140. .on('error', gutil.log)
  141. .pipe(gulp.dest(development + 'js'))
  142. .pipe(connect.reload());
  143. });
  144.  
  145. /**
  146. * Bower
  147. */
  148. gulp.task('wiredep', function() {
  149. gulp.src(index)
  150. .pipe(wiredep())
  151. .on('error', gutil.log)
  152. .pipe(gulp.dest('app'));
  153. });
  154.  
  155. /**
  156. * Creating Build Blocks, its dependent on Wiredep
  157. */
  158. gulp.task('usemin', function () {
  159. return gulp.src(index)
  160. .pipe(usemin({
  161. // css: [minifyCSS(), 'concat'],
  162. // js: [uglify()]
  163. }))
  164. .on('error', gutil.log)
  165. .pipe(gulp.dest(development));
  166. });
  167.  
  168. /**********************************
  169. * Runner Tasks
  170. **********************************/
  171.  
  172. /**
  173. * Task to manage Watch List
  174. */
  175. gulp.task('watch', function() {
  176. gulp.watch('app/**/*.scss', ['compass']);
  177. gulp.watch(jsSources, ['js']);
  178. gulp.watch(index, ['processIndex']);
  179. gulp.watch(templates, ['copyTemplates']);
  180. gulp.watch(images, ['copyImages']);
  181. });
  182.  
  183. /**
  184. * Server & liveReload
  185. */
  186. gulp.task('connect', function() {
  187. debugger;
  188. connect.server({
  189. directoryListing : true,
  190. fallback : 'index.html',
  191. root : development,
  192. port : '9000',
  193. livereload : true
  194. });
  195. });
  196.  
  197. gulp.task('processIndex', ['wiredep', 'usemin', 'copyIndex']);
  198.  
  199. /**
  200. * Default Task (Initiate on issuing gulp)
  201. */
  202. gulp.task('default', ['js', 'plugins', 'compass', 'processIndex', 'copyFontAwesome', 'copyImages', 'connect']);
  203. gulp.task('build-dev', ['js', 'plugins', 'compass', 'processIndex', 'copyFontAwesome', 'copyImages', 'connect']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement