build-script.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { rollup } from 'rollup';
  2. import esbuild from 'rollup-plugin-esbuild';
  3. import { minify } from './plugins/minify.js';
  4. import { BANNER } from './constants/banner.js';
  5. import fs from 'fs/promises';
  6. import * as zlib from 'zlib';
  7. const name = 'splide';
  8. async function buildScript( compress, type = 'default' ) {
  9. const file = `./dist/js/${ name }${ type !== 'default' ? `-${ type }` : '' }${ compress ? '.min' : '' }.js`;
  10. const bundle = await rollup( {
  11. input: `./src/js/build/${ type }.ts`,
  12. plugins: [
  13. esbuild( { minify: false } ),
  14. compress ? minify() : false,
  15. ],
  16. } );
  17. await bundle.write( {
  18. file,
  19. banner : BANNER,
  20. format : 'umd',
  21. name : type === 'default' ? 'Splide' : 'SplideRenderer',
  22. sourcemap: compress,
  23. } );
  24. if ( compress && type === 'default' ) {
  25. await fs.readFile( file ).then( content => {
  26. return new Promise( ( resolve, reject ) => {
  27. zlib.gzip( content, ( err, binary ) => {
  28. if ( err ) {
  29. return reject( err );
  30. }
  31. fs.writeFile( `${ file }.gz`, binary ).then( resolve, reject );
  32. } );
  33. } );
  34. } );
  35. }
  36. }
  37. Promise.all( [
  38. buildScript(),
  39. buildScript( true ),
  40. buildScript( true, 'renderer' ),
  41. ] ).catch( console.error );
  42. export const buildJs = () => buildScript();
  43. export const buildMin = () => buildScript( true );
  44. export const buildRenderer = () => buildScript( 'renderer' );