123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- 'use strict';
- /*
- * Dependencies.
- */
- const gulp = require( 'gulp' );
- const rename = require( 'gulp-rename' );
- const sass = require( 'gulp-dart-sass' );
- const sassGlob = require( 'gulp-sass-glob' );
- const postcss = require( 'gulp-postcss' );
- const autoprefixer = require( 'autoprefixer' );
- const cssnano = require( 'cssnano' );
- const merge = require( 'merge-stream' );
- const concat = require( 'gulp-concat' );
- const webpack = require( 'webpack' );
- const webpackStream = require( 'webpack-stream' );
- const eslint = require( 'gulp-eslint' );
- const gzip = require( 'gulp-gzip' );
- /*
- * Webpack config paths.
- */
- const js = {
- complete: {
- path: './build/complete/config',
- dest: './dist/js',
- },
- minified: {
- path: './build/complete/config-min',
- dest: './dist/js',
- gzip: true,
- },
- modular: {
- path: './build/module/config',
- dest: './dist/js',
- },
- };
- /*
- * Path definitions.
- */
- const css = {
- all: {
- path : './src/sass/core/*.scss',
- dest : './dist/css',
- merge: {
- filename: 'splide.css',
- path : './src/sass/themes/default/*.scss',
- },
- },
- core: {
- path: './src/sass/core/*.scss',
- dest: './dist/css',
- },
- default: {
- path : './src/sass/core/*.scss',
- dest : './dist/css/themes',
- basename: 'splide-default',
- merge : {
- filename: 'splide.css',
- path : './src/sass/themes/default/*.scss',
- },
- },
- skyblue: {
- path : './src/sass/core/*.scss',
- dest : './dist/css/themes',
- basename: 'splide-skyblue',
- merge : {
- filename: 'splide.css',
- path : './src/sass/themes/sky-blue/*.scss',
- },
- },
- seagreen: {
- path : './src/sass/core/*.scss',
- dest : './dist/css/themes',
- basename: 'splide-sea-green',
- merge : {
- filename: 'splide.css',
- path : './src/sass/themes/sea-green/*.scss',
- },
- },
- };
- /*
- * Build a script file.
- */
- gulp.task( 'build:js', done => {
- Object.values( js ).forEach( settings => {
- const stream = webpackStream( { config: require( settings.path ) }, webpack )
- .pipe( gulp.dest( settings.dest ) );
- if ( settings.gzip ) {
- stream.pipe( gzip() ).pipe( gulp.dest( settings.dest ) );
- }
- } );
- done();
- } );
- /*
- * Build sass files.
- */
- gulp.task( 'build:sass', done => {
- Object.values( css ).forEach( settings => {
- let stream = gulp.src( settings.path );
- if ( settings.merge ) {
- stream = merge( stream, gulp.src( settings.merge.path ) )
- .pipe( sassGlob() )
- .pipe( sass() )
- .pipe( concat( settings.merge.filename ) );
- }
- stream = stream
- .pipe( sassGlob() )
- .pipe( sass() )
- .pipe( postcss( [
- cssnano( { reduceIdents: false } ),
- autoprefixer( { overrideBrowserslist: [ '> 5%' ] } )
- ] ) );
- if ( settings.basename ) {
- stream = stream.pipe( rename( { basename: settings.basename } ) );
- }
- stream
- .pipe( rename( { suffix: '.min' } ) )
- .pipe( gulp.dest( settings.dest ) );
- } );
- done();
- } );
- /*
- * Run lint.
- */
- gulp.task( 'lint', () => {
- return gulp.src( [ './src/**/*.js', './tests/**/*.js' ] )
- .pipe( eslint( { useEslintrc: true } ) )
- .pipe( eslint.format() )
- .pipe( eslint.failAfterError() );
- } );
|