first commit
This commit is contained in:
52
libraries/splide-4.0.6/scripts/build-css.js
Normal file
52
libraries/splide-4.0.6/scripts/build-css.js
Normal file
@@ -0,0 +1,52 @@
|
||||
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 );
|
||||
};
|
||||
35
libraries/splide-4.0.6/scripts/build-module.js
Normal file
35
libraries/splide-4.0.6/scripts/build-module.js
Normal file
@@ -0,0 +1,35 @@
|
||||
const rollup = require( 'rollup' ).rollup;
|
||||
const resolve = require( '@rollup/plugin-node-resolve' ).nodeResolve;
|
||||
const esbuild = require( 'rollup-plugin-esbuild' ).default;
|
||||
const banner = require( './constants/banner' );
|
||||
const babel = require( '@rollup/plugin-babel' );
|
||||
const path = require( 'path' );
|
||||
const name = 'splide';
|
||||
|
||||
|
||||
function buildModule( type ) {
|
||||
return rollup( {
|
||||
input: './src/js/index.ts',
|
||||
plugins: [
|
||||
resolve(),
|
||||
esbuild(),
|
||||
babel.getBabelOutputPlugin( {
|
||||
configFile: path.resolve( __dirname, '../.babelrc' ),
|
||||
allowAllFormats: true,
|
||||
} ),
|
||||
],
|
||||
} ).then( bundle => {
|
||||
return bundle.write( {
|
||||
banner,
|
||||
file : `./dist/js/${ name }.${ type }.js`,
|
||||
format : type,
|
||||
sourcemap: false,
|
||||
exports : 'named',
|
||||
} );
|
||||
} );
|
||||
}
|
||||
|
||||
Promise.all( [ buildModule( 'cjs' ), buildModule( 'esm' ) ] ).catch( e => console.error( e ) );
|
||||
|
||||
exports.buildCjs = () => buildModule( 'cjs' );
|
||||
exports.buildEsm = () => buildModule( 'esm' );
|
||||
60
libraries/splide-4.0.6/scripts/build-script.js
Normal file
60
libraries/splide-4.0.6/scripts/build-script.js
Normal file
@@ -0,0 +1,60 @@
|
||||
const rollup = require( 'rollup' ).rollup;
|
||||
const esbuild = require( 'rollup-plugin-esbuild' ).default;
|
||||
const babel = require( '@rollup/plugin-babel' );
|
||||
const resolve = require( '@rollup/plugin-node-resolve' ).nodeResolve;
|
||||
const path = require( 'path' );
|
||||
const minify = require( './plugins/minify' ).minify;
|
||||
const banner = require( './constants/banner' );
|
||||
const fs = require( 'fs' ).promises;
|
||||
const zlib = require( 'zlib' );
|
||||
const name = 'splide';
|
||||
|
||||
|
||||
async function buildScript( compress, type = 'default' ) {
|
||||
const file = `./dist/js/${ name }${ type !== 'default' ? `-${ type }` : '' }${ compress ? '.min' : '' }.js`;
|
||||
|
||||
const bundle = await rollup( {
|
||||
input: `./src/js/build/${ type }.ts`,
|
||||
plugins: [
|
||||
resolve(),
|
||||
esbuild( { minify: false } ),
|
||||
babel.getBabelOutputPlugin( {
|
||||
configFile: path.resolve( __dirname, '../.babelrc' ),
|
||||
allowAllFormats: true,
|
||||
} ),
|
||||
compress ? minify( { minify: { sourceMap: true } } ) : false,
|
||||
]
|
||||
} );
|
||||
|
||||
await bundle.write( {
|
||||
banner,
|
||||
file,
|
||||
format : 'umd',
|
||||
name : type === 'default' ? 'Splide' : 'SplideRenderer',
|
||||
sourcemap: compress,
|
||||
} );
|
||||
|
||||
if ( compress && type === 'default' ) {
|
||||
await fs.readFile( file ).then( content => {
|
||||
return new Promise( ( resolve, reject ) => {
|
||||
zlib.gzip( content, ( err, binary ) => {
|
||||
if ( err ) {
|
||||
return reject( err );
|
||||
}
|
||||
|
||||
fs.writeFile( `${ file }.gz`, binary ).then( resolve, reject );
|
||||
} );
|
||||
} );
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
Promise.all( [
|
||||
buildScript(),
|
||||
buildScript( true ),
|
||||
buildScript( true, 'renderer' ),
|
||||
] ).catch( e => console.error( e ) );
|
||||
|
||||
exports.buildJs = () => buildScript();
|
||||
exports.buildMin = () => buildScript( true );
|
||||
exports.buildRenderer = () => buildScript( true, 'renderer' );
|
||||
42
libraries/splide-4.0.6/scripts/build-types.js
Normal file
42
libraries/splide-4.0.6/scripts/build-types.js
Normal file
@@ -0,0 +1,42 @@
|
||||
const { default: dts } = require( 'rollup-plugin-dts' );
|
||||
const { rollup } = require( 'rollup' );
|
||||
const { promises: fs } = require( 'fs' );
|
||||
const path = require( 'path' );
|
||||
const util = require( 'util' );
|
||||
const exec = util.promisify( require( 'child_process' ).exec );
|
||||
const dir = './dist/types';
|
||||
|
||||
|
||||
async function clean() {
|
||||
const files = await fs.readdir( dir );
|
||||
|
||||
await Promise.all( files.map( file => {
|
||||
if ( file !== 'index.d.ts' ) {
|
||||
return fs.rm( path.join( dir, file ), { recursive: true, force: true } );
|
||||
}
|
||||
} ) );
|
||||
}
|
||||
|
||||
async function emit() {
|
||||
await exec( 'tsc --emitDeclarationOnly' );
|
||||
}
|
||||
|
||||
async function bundle() {
|
||||
const file = path.join( dir, 'index.d.ts' )
|
||||
|
||||
const bundle = await rollup( {
|
||||
input : file,
|
||||
plugins: [ dts( { respectExternal: true } ) ],
|
||||
} );
|
||||
|
||||
await bundle.write( { file } );
|
||||
}
|
||||
|
||||
async function build() {
|
||||
await clean();
|
||||
await emit();
|
||||
await bundle();
|
||||
await clean();
|
||||
}
|
||||
|
||||
build().catch( e => console.error( e ) );
|
||||
22
libraries/splide-4.0.6/scripts/build-utils.js
Normal file
22
libraries/splide-4.0.6/scripts/build-utils.js
Normal file
@@ -0,0 +1,22 @@
|
||||
const rollup = require( 'rollup' ).rollup;
|
||||
const esbuild = require( 'rollup-plugin-esbuild' ).default;
|
||||
const name = 'splide-utils';
|
||||
|
||||
|
||||
function buildModule( type ) {
|
||||
return rollup( {
|
||||
input: './src/js/utils/index.ts',
|
||||
plugins: [
|
||||
esbuild(),
|
||||
],
|
||||
} ).then( bundle => {
|
||||
return bundle.write( {
|
||||
file : `./dist/js/utils/${ name }.${ type }.js`,
|
||||
format : type,
|
||||
sourcemap: false,
|
||||
exports : 'named',
|
||||
} );
|
||||
} );
|
||||
}
|
||||
|
||||
Promise.all( [ buildModule( 'cjs' ), buildModule( 'esm' ) ] ).catch( e => console.error( e ) );
|
||||
8
libraries/splide-4.0.6/scripts/constants/banner.js
Normal file
8
libraries/splide-4.0.6/scripts/constants/banner.js
Normal file
@@ -0,0 +1,8 @@
|
||||
const info = require( '../../package.json' );
|
||||
|
||||
module.exports = `/*!
|
||||
* Splide.js
|
||||
* Version : ${ info.version }
|
||||
* License : ${ info.license }
|
||||
* Copyright: ${ new Date().getFullYear() } ${ info.author }
|
||||
*/`;
|
||||
22
libraries/splide-4.0.6/scripts/develop.js
Normal file
22
libraries/splide-4.0.6/scripts/develop.js
Normal file
@@ -0,0 +1,22 @@
|
||||
const chokidar = require( 'chokidar' );
|
||||
const { buildJs, buildRenderer } = require( './build-script' );
|
||||
const { buildCss } = require( './build-css' );
|
||||
|
||||
chokidar.watch( [ './src/js/**/*.ts', '!*.test.ts', '!./src/js/renderer/**/*.ts' ] ).on( 'change', async () => {
|
||||
console.log( 'Building Script...' );
|
||||
await buildJs()
|
||||
console.log( 'Finished' );
|
||||
} );
|
||||
|
||||
chokidar.watch( [ './src/js/renderer/**/*.ts', '!*.test.ts' ] ).on( 'change', async () => {
|
||||
console.log( 'Building Renderer Script...' );
|
||||
await buildRenderer()
|
||||
console.log( 'Finished' );
|
||||
} );
|
||||
|
||||
chokidar.watch( [ './src/css/**/*.scss' ] ).on( 'change', async () => {
|
||||
console.log( 'Building CSS...' );
|
||||
await buildCss()
|
||||
console.log( 'Finished' );
|
||||
} );
|
||||
|
||||
36
libraries/splide-4.0.6/scripts/plugins/minify.js
Normal file
36
libraries/splide-4.0.6/scripts/plugins/minify.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const uglify = require( 'uglify-js' );
|
||||
const plugin = require( 'rollup-plugin-dts' );
|
||||
|
||||
const DEFAULTS = {
|
||||
minify: {
|
||||
sourceMap: true,
|
||||
output: {
|
||||
comments: /^!/,
|
||||
},
|
||||
toplevel: true,
|
||||
mangle: {
|
||||
properties: {
|
||||
regex: /^_/,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
function minify( pluginOptions = {} ) {
|
||||
pluginOptions = { ...DEFAULTS, ...pluginOptions };
|
||||
|
||||
return {
|
||||
name: 'minify',
|
||||
renderChunk( code ) {
|
||||
const result = uglify.minify( code, pluginOptions.minify );
|
||||
|
||||
if ( result.error ) {
|
||||
throw new Error( result.error );
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
exports.minify = minify;
|
||||
32
libraries/splide-4.0.6/scripts/serve.js
Normal file
32
libraries/splide-4.0.6/scripts/serve.js
Normal file
@@ -0,0 +1,32 @@
|
||||
const http = require( 'http' );
|
||||
const path = require( 'path' );
|
||||
const fs = require( 'fs' ).promises;
|
||||
const server = http.createServer();
|
||||
|
||||
const mime = {
|
||||
'.html': 'text/html',
|
||||
'.css' : 'text/css',
|
||||
'.jpg' : 'image/jpeg',
|
||||
'.js' : 'application/javascript',
|
||||
};
|
||||
|
||||
server.on( 'request', async ( request, response ) => {
|
||||
const { url } = request;
|
||||
let fullPath;
|
||||
|
||||
if ( url === '/' ) {
|
||||
fullPath = path.resolve( './src/js/test/html/index.html' );
|
||||
} else if ( url.startsWith( '/' ) ) {
|
||||
fullPath = path.resolve( `.${ url }` );
|
||||
} else {
|
||||
fullPath = url;
|
||||
}
|
||||
|
||||
const type = mime[ path.extname( fullPath ) ] || 'text/plain';
|
||||
const buffer = await fs.readFile( fullPath ).catch( e => console.warn( e ) );
|
||||
|
||||
response.writeHead( 200, { 'Content-Type': type } );
|
||||
response.end( buffer );
|
||||
} );
|
||||
|
||||
server.listen( 3000 );
|
||||
Reference in New Issue
Block a user