Advertisement
Guest User

Old Gulp

a guest
Jul 28th, 2022
2,542
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const { src, dest, parallel, series, watch } = require('gulp');
  2. const sass = require('gulp-sass');
  3. const sasslint = require('gulp-sass-lint');
  4. const prefix = require('gulp-autoprefixer');
  5. const sourcemaps = require('gulp-sourcemaps');
  6. const concat = require('gulp-concat');
  7. const browsersync = require('browser-sync');
  8. const del = require('del');
  9. const kit = require('gulp-kit-2');
  10. const rename = require('gulp-rename');
  11. const jsimport = require('gulp-js-import-file');
  12. const copy = require('gulp-copy');
  13. const paths = {};
  14.  
  15. paths.assets = './dist/';
  16.  
  17. // Kit file compilation
  18. function html() {
  19.     return src(['src/templates/*.kit'], del('dist/*.html'))
  20.     .pipe(kit())
  21.     .pipe(dest(paths.assets));
  22. }
  23.  
  24. // SCSS bundled into CSS task
  25. function lintsass() {
  26.     return src([
  27.         'src/scss/**/*.scss',
  28.         '!src/scss/_fonts.scss',
  29.         '!src/scss/_normalize.scss',
  30.         '!src/scss/_overrides.scss',
  31.         '!src/scss/_boilerplate.scss',
  32.         '!src/scss/vendor/**/*.scss'
  33.     ])
  34.     .pipe(sasslint({
  35.         configFile: 'src/scss/.sasslintrc'
  36.     }))
  37.     .pipe(sasslint.format())
  38.     .pipe(sasslint.failOnError())
  39. }
  40. function css() {
  41.     return src('src/scss/**/*.scss')
  42.     .pipe(sourcemaps.init())
  43.     .pipe(sourcemaps.init({ loadMaps: true }))
  44.     .pipe(sass({
  45.         outputStyle: 'compressed'
  46.     })
  47.     .on('error', sass.logError))
  48.     .pipe(prefix())
  49.     .pipe(sourcemaps.write('maps', {
  50.         sourceMappingURL: function (file) {
  51.             return 'maps/' + file.relative + '.min.map';
  52.         }
  53.     }))
  54.     .pipe(rename({ suffix: '.min' }))
  55.     .pipe(dest(paths.assets + 'css'));
  56. }
  57.  
  58. //Copy fonts
  59. function copyfonts() {
  60.     return src(['src/scss/fonts/**/*.*'], del(paths.assets + 'css/fonts/*'))
  61.     .pipe(dest(paths.assets + 'css/fonts'));
  62. }
  63.  
  64. //Copy CSS images
  65. function copyimg() {
  66.     return src(['src/scss/img/**/*.*'], del(paths.assets + 'css/img/*'))
  67.     .pipe(dest(paths.assets + 'css/img'));
  68. }
  69.  
  70. //Copy FPO images
  71. function fpoimg() {
  72.     return src(['src/templates/img-fpo/**/*.*'], del(paths.assets + 'img-fpo/*'))
  73.     .pipe(dest(paths.assets + 'img-fpo'));
  74. }
  75.  
  76. //Copy Media images
  77. function mediaimg() {
  78.     return src(['src/templates/media/**/*.*'], del(paths.assets + 'media/*'))
  79.     .pipe(dest(paths.assets + 'media'));
  80. }
  81.  
  82. //Copy JS vendor
  83. function copyjsvendor() {
  84.     return src('src/js/vendor/*.js')
  85.     .pipe(dest(paths.assets + 'js/vendor'));
  86. }
  87.  
  88. // JS bundled into min.js task
  89. function js() {
  90.     return src('src/js/*.js')
  91.     .pipe(jsimport({
  92.         hideConsole: true,
  93.     importStack: true,
  94.     es6import: true
  95.     }))
  96.     .pipe(dest(paths.assets + 'js/'));
  97. }
  98.  
  99. // BrowserSync
  100. function browserSync() {
  101.     browsersync({
  102.         server: {
  103.             baseDir: './dist/'
  104.         },
  105.         notify: {
  106.             styles: {
  107.                 top: '0',
  108.                 bottom: 'auto',
  109.                 margin: '0px',
  110.                 padding: '5px',
  111.                 position: 'fixed',
  112.                 fontSize: '12px',
  113.                 zIndex: '9999',
  114.                 borderRadius: '0',
  115.                 color: 'white',
  116.                 textAlign: 'center',
  117.                 display: 'block',
  118.                 backgroundColor: 'rgba(0, 0, 0, 0.5)'
  119.             }
  120.         }
  121.     });
  122. }
  123.  
  124. // Copy DIST folder to Static Repo
  125. function copystatic() {
  126.     return src(['dist/**/**'])
  127.         .pipe(copy('../../../../FE_Static/McAlisters'));
  128. }
  129.  
  130. // BrowserSync reload
  131. function browserReload() {
  132.     return browsersync.reload;
  133.     done();
  134. }
  135.  
  136. // Watch files
  137. function watchFiles() {
  138.     // Watch all design changes
  139.     watch('src/scss/**/*.*', parallel(lintsass, css, copyfonts, copyimg, mediaimg))
  140.         .on('change', browserReload());
  141.     // Watch javascripts changes
  142.     watch('src/js/**/*.js', parallel(js))
  143.         .on('change', browserReload());
  144.     // Watch template changes
  145.     watch('src/templates/**/*.*', parallel(html, fpoimg))
  146.         .on('change', browserReload());
  147. }
  148.  
  149. const watching = parallel(watchFiles, browserSync);
  150.  
  151. exports.copystatic = copystatic;
  152. exports.html = html;
  153. exports.lintsass = lintsass;
  154. exports.js = js;
  155. exports.css = css;
  156. exports.copyimg = copyimg;
  157. exports.copyjsvendor = copyjsvendor;
  158. exports.mediaimg = mediaimg;
  159. exports.copyfonts = copyfonts;
  160. exports.fpoimg = fpoimg;
  161. exports.default = parallel(watching, html, css, js, copyimg, copyjsvendor, copyfonts, fpoimg, lintsass, mediaimg);
  162.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement