build: improve build script to support multiple targets
This commit is contained in:
		
							parent
							
								
									b33f0ceff1
								
							
						
					
					
						commit
						776bc73a5a
					
				| @ -20,19 +20,21 @@ const zlib = require('zlib') | ||||
| const chalk = require('chalk') | ||||
| const execa = require('execa') | ||||
| const { compress } = require('brotli') | ||||
| const { targets, fuzzyMatchTarget } = require('./utils') | ||||
| const { targets: allTargets, fuzzyMatchTarget } = require('./utils') | ||||
| 
 | ||||
| const args = require('minimist')(process.argv.slice(2)) | ||||
| const target = args._[0] | ||||
| const targets = args._ | ||||
| const formats = args.formats || args.f | ||||
| const devOnly = args.devOnly || args.d | ||||
| const prodOnly = !devOnly && (args.prodOnly || args.p) | ||||
| const buildAllMatching = args.all || args.a | ||||
| ;(async () => { | ||||
|   if (!target) { | ||||
|     await buildAll(targets) | ||||
|     checkAllSizes(targets) | ||||
|   if (!targets.length) { | ||||
|     await buildAll(allTargets) | ||||
|     checkAllSizes(allTargets) | ||||
|   } else { | ||||
|     await buildAll(fuzzyMatchTarget(target, buildAllMatching)) | ||||
|     checkAllSizes(fuzzyMatchTarget(target, buildAllMatching)) | ||||
|     await buildAll(fuzzyMatchTarget(targets, buildAllMatching)) | ||||
|     checkAllSizes(fuzzyMatchTarget(targets, buildAllMatching)) | ||||
|   } | ||||
| })() | ||||
| 
 | ||||
| @ -53,11 +55,11 @@ async function build(target) { | ||||
|     [ | ||||
|       '-c', | ||||
|       '--environment', | ||||
|       `NODE_ENV:production,` + | ||||
|       `NODE_ENV:${devOnly ? 'development' : 'production'},` + | ||||
|         `TARGET:${target}` + | ||||
|         (formats ? `,FORMATS:${formats}` : ``) + | ||||
|         (args.types ? `,TYPES:true` : ``) + | ||||
|         (args.p ? `,PROD_ONLY:true` : ``) | ||||
|         (prodOnly ? `,PROD_ONLY:true` : ``) | ||||
|     ], | ||||
|     { stdio: 'inherit' } | ||||
|   ) | ||||
|  | ||||
| @ -11,16 +11,18 @@ const targets = (exports.targets = fs.readdirSync('packages').filter(f => { | ||||
|   return true | ||||
| })) | ||||
| 
 | ||||
| exports.fuzzyMatchTarget = (partialTarget, includeAllMatching) => { | ||||
| exports.fuzzyMatchTarget = (partialTargets, includeAllMatching) => { | ||||
|   const matched = [] | ||||
|   partialTargets.some(partialTarget => { | ||||
|     for (const target of targets) { | ||||
|       if (target.match(partialTarget)) { | ||||
|         matched.push(target) | ||||
|         if (!includeAllMatching) { | ||||
|         return matched | ||||
|           break | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }) | ||||
|   if (matched.length) { | ||||
|     return matched | ||||
|   } else { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user