Advertisement
Guest User

Untitled

a guest
May 4th, 2015
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.25 KB | None | 0 0
  1. var gulp = require('gulp'),
  2. gulpif = require('gulp-if'),
  3. sprite = require('css-sprite').stream,
  4. sass = require('gulp-sass'),
  5. autoprefixer = require('gulp-autoprefixer'),
  6. minifycss = require('gulp-minify-css'),
  7. rename = require('gulp-rename'),
  8. notify = require('gulp-notify'),
  9. clean = require('gulp-clean'),
  10. watch = require('gulp-watch'),
  11. svgSprite = require('gulp-svg-sprite'),
  12. plumber = require('gulp-plumber'),
  13. path = require('path'),
  14. concat = require('gulp-concat'),
  15. uglify = require('gulp-uglify'),
  16. sourcemaps = require('gulp-sourcemaps'),
  17. browserSync = require('browser-sync'),
  18. reload = browserSync.reload,
  19. svgmin = require('svgmin'),
  20. svgspritesheet = require('gulp-svg-spritesheet'),
  21. gulpif = require('gulp-if'),
  22. scsslint = require('gulp-scss-lint'),
  23. fontcustom = require('fontcustom');
  24.  
  25. var notifyInfo = {
  26. title: 'Gulp',
  27. icon: path.join(__dirname, 'gulp.png')
  28. };
  29.  
  30. //error notification settings for plumber
  31. var plumberErrorHandler = { errorHandler: notify.onError({
  32. title: notifyInfo.title,
  33. icon: notifyInfo.icon,
  34. message: "Error: <%= error.message %>"
  35. })
  36. };
  37.  
  38. // JS plugins
  39. gulp.task('plugins', function() {
  40. return gulp.src('./src/js/plugins/*.js')
  41. .pipe(plumber(plumberErrorHandler))
  42. .pipe(concat('plugins.js'))
  43. .pipe(gulp.dest('./public/build/js'))
  44. .pipe(rename({ suffix: '.min' }))
  45. .pipe(uglify())
  46. .pipe(gulp.dest('./public/build/js'));
  47. });
  48.  
  49. //scripts
  50. gulp.task('scripts', function() {
  51. return gulp.src('./src/js/*.js')
  52. .pipe(plumber(plumberErrorHandler))
  53. .pipe(concat('site.js'))
  54. .pipe(gulp.dest('./public/build/js'))
  55. .pipe(rename({ suffix: '.min' }))
  56. .pipe(uglify())
  57. .pipe(gulp.dest('./public/build/js'));
  58. });
  59.  
  60. //scripts
  61. gulp.task('jsbuild', function() {
  62. return gulp.src(['./public/build/js/plugins.js', './public/build/js/site.js'])
  63. .pipe(plumber(plumberErrorHandler))
  64. .pipe(concat('main.js'))
  65. .pipe(gulp.dest('./public/build/js'))
  66. .pipe(rename({ suffix: '.min' }))
  67. .pipe(uglify())
  68. .pipe(gulp.dest('./public/build/js'));
  69. });
  70.  
  71. var bsconfig = {
  72. // 1. inform browser-sync to watch compiled *.css files instead of *.scss sass files
  73. files: ["./public/build/css/**/*.css", "./craft/templates/**/*.twig"],
  74. proxy: "tgcaus.craft.dev"
  75. }
  76.  
  77. baseDir = './src/lib/svgsprite', // <-- Set to your SVG base directory
  78. svgGlob = '**/*.svg', // <-- Glob to match your SVG files
  79. outDir = './public/build', // <-- Main output directory
  80. config = {
  81. "mode": {
  82. "view": {
  83. "prefix": "tgc-%s",
  84. "sprite": "../svg/sprite.view.svg",
  85. "render": {
  86. "scss": {
  87. "dest": "../../../src/scss/_svgsprite.scss"
  88. }
  89. },
  90. "example": true
  91. }
  92. }
  93. };
  94.  
  95. gulp.task('svgsprite', function() {
  96. return gulp.src(svgGlob, {cwd: baseDir})
  97. .pipe(plumber())
  98. .pipe(svgSprite(config)).on('error', function(error){ console.log(error); })
  99. .pipe(gulp.dest(outDir))
  100. });
  101.  
  102. gulp.task('svgsprite', function() {
  103. return gulp.src(svgGlob, {cwd: baseDir})
  104. .pipe(plumber())
  105. .pipe(svgSprite(config)).on('error', function(error){ console.log(error); })
  106. .pipe(gulp.dest(outDir))
  107. });
  108.  
  109.  
  110.  
  111. // browser-sync task for starting the server.
  112. gulp.task('browser-sync', function() {
  113. browserSync(bsconfig)
  114. });
  115.  
  116. // Clean
  117. gulp.task('clean', function() {
  118. return gulp.src(['./public/build/css/'], {read: false})
  119. .pipe(clean())
  120. .pipe(notify({
  121. "message": "CSS cleaned",
  122. "sound": "Glass",
  123. }));
  124. });
  125.  
  126. gulp.task('sass', function() {
  127. gulp.task('clean');
  128. return gulp.src(['./src/scss/**/*.scss'])
  129. // .pipe(sourcemaps.init())
  130. .pipe(plumber(plumberErrorHandler))
  131. .pipe(sass())
  132. // .pipe(sourcemaps.write())
  133. .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 7', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
  134. .pipe(gulp.dest('./public/build/css'))
  135. .pipe(rename({ suffix: '.min' }))
  136. .pipe(minifycss())
  137. .pipe(gulp.dest('./public/build/css'))
  138. .pipe(notify("Hey y'all, I just built the CSS"))
  139. });
  140.  
  141. // generate sprite.png and _sprite.scss
  142. gulp.task('sprites', function () {
  143. return gulp.src('src/lib/pngsprite/**/*.png')
  144. .pipe(sprite({
  145. name: 'pngsprite',
  146. style: '_pngsprite.scss',
  147. cssPath: '../img',
  148. processor: 'scss',
  149. prefix: 'pngsprite',
  150. retina: true,
  151. margin: 5
  152. }))
  153. .pipe(gulpif('*.png', gulp.dest('./public/build/img/')))
  154. .pipe(gulpif('*.scss', gulp.dest('./src/scss/')));
  155. });
  156.  
  157. // generate scss with base64 encoded images
  158. gulp.task('base64', function () {
  159. return gulp.src('./src/img/*.png')
  160. .pipe(sprite({
  161. base64: true,
  162. style: '_base64.scss',
  163. processor: 'scss'
  164. }))
  165. .pipe(gulp.dest('./src/scss/'));
  166. });
  167.  
  168. gulp.task('scss-lint', function() {
  169. gulp.src('./src/scss/**/*.scss')
  170. .pipe(scsslint({'config': './src/scss/scsslint.yml'}));
  171. });
  172.  
  173. // custom icons
  174. gulp.task('icons', function() {
  175. return fontcustom({
  176. "config": './fontcustom.yml',
  177. "noisy": true
  178. });
  179. });
  180.  
  181. gulp.task('watch', function() {
  182. gulp.watch('./src/scss/**/*.scss', ['sass']);
  183. });
  184.  
  185. // Default task to be run with `gulp`
  186. gulp.task('default', ['sass','browser-sync'], function () {
  187. gulp.watch("./src/scss/**/*.scss", ['sass']);
  188. gulp.watch("./craft/templates/**/*.twig");
  189. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement