@@ -3,6 +3,7 @@ import { cpSync, mkdirSync, readdirSync } from 'fs'
33import { execSync } from 'child_process'
44
55const dev = process . argv . includes ( '--watch' )
6+ const OUT = process . env . HS_OUT_DIR || 'dist'
67
78const coreEntry = [ 'src/_hyperscript.js' ]
89const extEntries = [
@@ -61,34 +62,34 @@ function builds(entryPoints, outOptions) {
6162const maxEntry = [ 'src/_hyperscript-max.js' ]
6263
6364const coreBuildConfigs = builds ( coreEntry , {
64- iife : { outfile : 'dist /_hyperscript.js' } ,
65- esm : { outfile : 'dist /_hyperscript.esm.js' } ,
66- iifeMin : { outfile : 'dist /_hyperscript.min.js' } ,
67- esmMin : { outfile : 'dist /_hyperscript.esm.min.js' } ,
65+ iife : { outfile : ` ${ OUT } /_hyperscript.js` } ,
66+ esm : { outfile : ` ${ OUT } /_hyperscript.esm.js` } ,
67+ iifeMin : { outfile : ` ${ OUT } /_hyperscript.min.js` } ,
68+ esmMin : { outfile : ` ${ OUT } /_hyperscript.esm.min.js` } ,
6869} )
6970
7071const maxBuildConfigs = [
71- { ...shared , format : 'iife' , entryPoints : maxEntry , outfile : 'dist /_hyperscript-max.js' } ,
72- { ...shared , format : 'iife' , minify : true , sourcemap : false , entryPoints : maxEntry , outfile : 'dist /_hyperscript-max.min.js' } ,
72+ { ...shared , format : 'iife' , entryPoints : maxEntry , outfile : ` ${ OUT } /_hyperscript-max.js` } ,
73+ { ...shared , format : 'iife' , minify : true , sourcemap : false , entryPoints : maxEntry , outfile : ` ${ OUT } /_hyperscript-max.min.js` } ,
7374]
7475
7576const extBuildConfigs = builds ( extEntries , {
76- iife : { outdir : 'dist /ext' } ,
77- esm : { outdir : 'dist /ext' , outExtension : { '.js' : '.esm.js' } } ,
78- iifeMin : { outdir : 'dist /ext' , outExtension : { '.js' : '.min.js' } } ,
79- esmMin : { outdir : 'dist /ext' , outExtension : { '.js' : '.esm.min.js' } } ,
77+ iife : { outdir : ` ${ OUT } /ext` } ,
78+ esm : { outdir : ` ${ OUT } /ext` , outExtension : { '.js' : '.esm.js' } } ,
79+ iifeMin : { outdir : ` ${ OUT } /ext` , outExtension : { '.js' : '.min.js' } } ,
80+ esmMin : { outdir : ` ${ OUT } /ext` , outExtension : { '.js' : '.esm.min.js' } } ,
8081} )
8182
8283function brotliCompress ( ) {
8384 const minFiles = [
84- 'dist /_hyperscript.min.js' ,
85- 'dist /_hyperscript.esm.min.js' ,
86- 'dist /_hyperscript-max.min.js' ,
85+ ` ${ OUT } /_hyperscript.min.js` ,
86+ ` ${ OUT } /_hyperscript.esm.min.js` ,
87+ ` ${ OUT } /_hyperscript-max.min.js` ,
8788 ]
8889 // Add extension min files
89- for ( const f of readdirSync ( 'dist /ext' ) ) {
90+ for ( const f of readdirSync ( ` ${ OUT } /ext` ) ) {
9091 if ( f . endsWith ( '.min.js' ) ) {
91- minFiles . push ( 'dist /ext/' + f )
92+ minFiles . push ( ` ${ OUT } /ext/` + f )
9293 }
9394 }
9495 for ( const f of minFiles ) {
@@ -97,8 +98,8 @@ function brotliCompress() {
9798}
9899
99100function copyPlatformScripts ( ) {
100- mkdirSync ( 'dist /platform' , { recursive : true } )
101- cpSync ( 'src/platform' , 'dist /platform' , { recursive : true } )
101+ mkdirSync ( ` ${ OUT } /platform` , { recursive : true } )
102+ cpSync ( 'src/platform' , ` ${ OUT } /platform` , { recursive : true } )
102103}
103104
104105if ( dev ) {
@@ -107,14 +108,14 @@ if (dev) {
107108 ...shared ,
108109 format : 'iife' ,
109110 entryPoints : coreEntry ,
110- outfile : 'dist /_hyperscript.js' ,
111+ outfile : ` ${ OUT } /_hyperscript.js` ,
111112 } )
112113 await ctx . watch ( )
113- console . log ( ' Watching src/ for changes...' )
114+ console . log ( ` Watching src/ for changes...` )
114115} else {
115116 const allConfigs = [ ...coreBuildConfigs , ...maxBuildConfigs , ...extBuildConfigs ]
116117 await Promise . all ( allConfigs . map ( c => esbuild . build ( c ) ) )
117118 copyPlatformScripts ( )
118119 brotliCompress ( )
119- console . log ( ' Built dist/' )
120+ console . log ( ` Built ${ OUT } /` )
120121}
0 commit comments