123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- const { parallel, src, dest } = require( 'gulp' );
- const rollup = require( 'rollup' ).rollup;
- const uglify = require( 'rollup-plugin-uglify' ).uglify;
- const babel = require( '@rollup/plugin-babel' );
- const resolve = require( '@rollup/plugin-node-resolve' ).nodeResolve;
- const gzip = require( 'gulp-gzip' );
- const path = require( 'path' );
- const banner = require( './constants/banner' );
- function buildScript( type, minify ) {
- const file = buildFilename( type, minify );
- const input = `./src/js/build/${ type }/${ type }.js`;
- const plugins = [
- resolve(),
- babel.getBabelOutputPlugin( {
- configFile: path.resolve( __dirname, '../.babelrc' ),
- allowAllFormats: true,
- } ),
- ];
- if ( minify ) {
- plugins.push(
- uglify( {
- output: {
- comments: /^!/,
- },
- // mangle: {
- // properties: {
- // regex: /^_(private)_/,
- // },
- // },
- } ),
- );
- }
- return rollup( { input, plugins } )
- .then( bundle => {
- return bundle.write( {
- banner,
- file,
- format : 'umd',
- name : 'Splide',
- sourcemap: ! minify,
- } );
- } ).then( () => {
- if ( minify ) {
- return src( file )
- .pipe( gzip() )
- .pipe( dest( './dist/js/' ) );
- }
- } );
- }
- function buildFilename( type, minify ) {
- if ( type === 'default' ) {
- return `./dist/js/splide${ minify ? '.min' : '' }.js`;
- }
- return `./dist/js/splide-${ type }${ minify ? '.min' : '' }.js`;
- }
- function buildModule( format ) {
- return rollup( {
- input : './src/js/build/module/module.js',
- plugins: [
- resolve(),
- babel.getBabelOutputPlugin( {
- presets: [
- [
- '@babel/preset-env',
- {
- modules: false,
- loose : true,
- }
- ]
- ],
- allowAllFormats: true,
- } ),
- ]
- } ).then( bundle => {
- return bundle.write( {
- banner,
- file : `./dist/js/splide.${ format }.js`,
- format,
- exports: 'named',
- } );
- } );
- }
- exports.buildScript = parallel(
- function jsDefault() { return buildScript( 'default' ) },
- function jsMinified() { return buildScript( 'default', true ) },
- );
- exports.buildModule = parallel(
- function moduleCjs() { return buildModule( 'cjs' ) },
- function moduleEsm() { return buildModule( 'esm' ) },
- );
|