12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- const sass = require( 'sass' );
- const fs = require( 'fs' ).promises;
- const path = require( 'path' );
- const postcss = require( 'postcss' );
- const cssnano = require( 'cssnano' );
- const autoprefixer = require( 'autoprefixer' );
- const name = 'splide';
- const files = [
- './src/css/core/index.scss',
- './src/css/themes/default/index.scss',
- './src/css/themes/sea-green/index.scss',
- './src/css/themes/skyblue/index.scss',
- ];
- function buildCss( file ) {
- const result = sass.renderSync( { file, outputStyle: 'compressed' } );
- const outFile = rename( file );
- return postcss( [
- cssnano( { reduceIdents: false } ),
- autoprefixer(),
- ] )
- .process( result.css, { from: undefined } )
- .then( result => {
- result.warnings().forEach( warn => {
- console.warn( warn.toString() );
- } );
- return fs.writeFile( outFile, result.css ).then( () => result );
- } )
- .then( result => {
- if ( outFile.includes( 'splide-default' ) ) {
- const dir = path.dirname( outFile ).split( '/' ).slice( 0, -1 ).join( '/' );
- return fs.writeFile( `${ dir }/${ name }.min.css`, result.css ).then( () => result );
- }
- } );
- }
- function rename( file ) {
- file = file.replace( './src/', '' );
- const fragments = path.dirname( file ).split( '/' );
- const dirname = fragments.slice( 0, -1 ).join( '/' );
- return `./dist/${ dirname }/${ name }-${ fragments[ fragments.length - 1 ] }.min.css`;
- }
- Promise.all( files.map( buildCss ) ).catch( e => console.error( e ) );
- exports.buildCss = () => {
- files.forEach( buildCss );
- };
|