123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- 'use strict';
- /*
- * Dependencies.
- */
- const gulp = require( 'gulp' );
- const rename = require( 'gulp-rename' );
- const sass = require( 'gulp-sass' );
- const postcss = require( 'gulp-postcss' );
- const autoprefixer = require( 'autoprefixer' );
- const cssnano = require( 'cssnano' );
- const merge = require( 'merge-stream' );
- const concat = require( 'gulp-concat' );
- const webpackStream = require( 'webpack-stream' );
- const eslint = require( 'gulp-eslint' );
- /*
- * Webpack config paths.
- */
- const js = [
- './build/complete/config',
- ];
- /*
- * Path definitions.
- */
- const css = {
- core: {
- path: './src/sass/core/splide-core.scss',
- dest: './dist/css',
- },
- theme: {
- path: './src/sass/theme/splide-theme.scss',
- dest: './dist/css',
- },
- };
- /*
- * Build a script file.
- */
- gulp.task( 'build:js', () => {
- js.forEach( path => {
- return webpackStream( { config: require( path ) } )
- .pipe( rename( { suffix: '.min' } ) )
- .pipe( gulp.dest( './dist/js' ) );
- } );
- } );
- /*
- * Build sass files.
- */
- gulp.task( 'build:sass', () => {
- let mergedStream;
- Object.values( css ).forEach( settings => {
- const stream = gulp.src( settings.path )
- .pipe( sass() )
- .pipe( postcss( [
- cssnano( { reduceIdents: false } ),
- autoprefixer( { browsers: [ '> 5%' ] } )
- ] ) )
- .pipe( rename( { suffix: '.min' } ) )
- .pipe( gulp.dest( settings.dest ) );
- mergedStream = ! mergedStream ? stream : merge( mergedStream, stream );
- } );
- if ( mergedStream ) {
- mergedStream
- .pipe( concat( 'splide.min.css' ) )
- .pipe( postcss( [ cssnano( { reduceIdents: false } ) ] ) )
- .pipe( gulp.dest( './dist/css' ) );
- }
- } );
- gulp.task( 'lint', () => {
- return gulp.src( [ './src/**/*.js', './tests/**/*.js' ] )
- .pipe( eslint( { useEslintrc: true } ) )
- .pipe( eslint.format() )
- .pipe( eslint.failAfterError() );
- } );
|