UNPKG

csmall-theme

Version:

自用资源,不负责对外的使用解答

69 lines (58 loc) 1.63 kB
#!/usr/bin/env node const root = process.cwd(); const childProcess = require('child_process'); const themeConfig = require('./theme-config')(root); let buildJs = true; let items = null; if(process.argv[2] && process.argv[2].trim() !== 'all'){ items = process.argv[2].split(','); buildJs = false; } if(items){ items.map(key => { if(!themeConfig.keys.includes(key)){ console.warn('Theme key: ' + key + ' not exists! from items.map'); process.exit(); } }); }else{ items = themeConfig.keys; } if(process.env.npm_lifecycle_event === 'build-test'){ process.env.buildMode = 'test'; }else{ process.env.buildMode = 'production'; } if(process.env.npm_lifecycle_event === 'build-theme'){ buildJs = false; } function execBuild(key, clean){ if(key !== 'false'){ console.info('>>>Start build theme: ' + key); } process.env.themeKey = key; if(items.length){ process.env.onlyBuildTheme = 1; }else if(buildJs){ process.env.onlyBuildTheme = 0; }else{ process.env.onlyBuildTheme = process.argv[3] !== 'false'? 1: 0; } process.env.cleanExpiredCompiled = clean; const child = childProcess.spawn('npm run build-release', [], { stdio: 'inherit', encoding: 'utf8', shell: true, timeout: 0, killSignal: 'SIGTERM', setsid: false, cwd: root, env: process.env }); child.on('close', () => { if(items.length > 0){ execBuild(items.shift(), 0); } }); } execBuild(items.length? items.shift(): 'false', 1);