@@ -45,44 +45,53 @@ const buildsConfig = [
4545 } ,
4646]
4747
48- const builds = buildsConfig . map ( ( { format, outfile, minify } ) =>
49- esbuild . build ( {
50- entryPoints : [ './src/index.tsx' ] ,
51- bundle : true ,
52- outfile,
53- format,
54- treeShaking : true ,
55- minify,
56- sourcemap : true ,
57- external : [ 'react' , 'react-dom' , 'prop-types' ] ,
58- plugins : [
59- cssModulesPlugin ( {
60- // inject: true,
61- v2 : true ,
62- v2CssModulesOption : {
63- pattern : `react-tooltip__[local]_[hash]` ,
64- } ,
65- } ) ,
66- ] ,
67- } ) ,
48+ const builds = await Promise . all (
49+ buildsConfig . map ( ( { format, outfile, minify } ) =>
50+ esbuild . build ( {
51+ entryPoints : [ './src/index.tsx' ] ,
52+ bundle : true ,
53+ outfile,
54+ format,
55+ treeShaking : true ,
56+ minify,
57+ sourcemap : true ,
58+ external : [ 'react' , 'react-dom' , 'prop-types' ] ,
59+ plugins : [
60+ cssModulesPlugin ( {
61+ // inject: true,
62+ v2 : true ,
63+ v2CssModulesOption : {
64+ pattern : `react-tooltip__[local]_[hash]` ,
65+ } ,
66+ } ) ,
67+ ] ,
68+ } ) ,
69+ ) ,
6870)
6971
70- await Promise . all ( builds )
72+ const toDelete = new Set ( )
73+ builds . forEach ( ( build ) => {
74+ const outputs = Object . keys ( build . metafile . outputs )
75+ outputs . forEach ( ( output ) => {
76+ /**
77+ * delete all redundant `.css` and `.css.map` files
78+ * except the ones we actually want to keep
79+ */
80+ if ( / r e a c t - t o o l t i p \. c s s ( \. m a p ) ? $ / . test ( output ) ) {
81+ return
82+ }
83+ if ( / \. c s s ( \. m a p ) ? $ / . test ( output ) ) {
84+ toDelete . add ( output )
85+ }
86+ } )
87+ } )
7188
72- // Remove all unecessary or duplicated files from `dist` folder after build
73- fs . unlink ( './dist/react-tooltip.cjs.css' , ( ) => null ) // generated by cjs build
74- fs . unlink ( './dist/react-tooltip.esm.css' , ( ) => null ) // generated by esm build
75- fs . unlink ( './dist/react-tooltip.iife.css' , ( ) => null ) // generated by iife build
76- fs . unlink ( './dist/react-tooltip.cjs.min.css' , ( ) => null ) // generated by minified cjs build
77- fs . unlink ( './dist/react-tooltip.esm.min.css' , ( ) => null ) // generated by minified esm build
78- fs . unlink ( './dist/react-tooltip.iife.min.css' , ( ) => null ) // generated by minified iife build
79- fs . unlink ( './dist/react-tooltip.js' , ( ) => null ) // generated by css build
80- fs . unlink ( './dist/react-tooltip.min.js' , ( ) => null ) // generated by minified css build
81- fs . unlink ( './dist/react-tooltip.cjs.css.map' , ( ) => null ) // generated by cjs build
82- fs . unlink ( './dist/react-tooltip.esm.css.map' , ( ) => null ) // generated by esm build
83- fs . unlink ( './dist/react-tooltip.iife.css.map' , ( ) => null ) // generated by iife build
84- fs . unlink ( './dist/react-tooltip.cjs.min.css.map' , ( ) => null ) // generated by minified cjs build
85- fs . unlink ( './dist/react-tooltip.esm.min.css.map' , ( ) => null ) // generated by minified esm build
86- fs . unlink ( './dist/react-tooltip.iife.min.css.map' , ( ) => null ) // generated by minified iife build
87- fs . unlink ( './dist/react-tooltip.js.map' , ( ) => null ) // generated by css build
88- fs . unlink ( './dist/react-tooltip.min.js.map' , ( ) => null ) // generated by minified css build
89+ /**
90+ * delete the extra build files from the CSS build
91+ */
92+ toDelete . add ( 'dist/react-tooltip.js' )
93+ toDelete . add ( 'dist/react-tooltip.js.map' )
94+
95+ toDelete . forEach ( ( file ) => {
96+ fs . unlink ( file , ( ) => null )
97+ } )
0 commit comments