build.js (1584B)
1 const colors = require('colors/safe'); 2 3 const getBrowserify = require('./browserify'); 4 const getCopy = require('./copy'); 5 const getJS = require('./js'); 6 const getSass = require('./sass'); 7 const getSymlinks = require('./symlinks'); 8 const { formatDirsForMatcher, getSignatures, writeSignatures, cleanUp, onSuccess, onError} = require('./utils'); 9 const { dirs, symlinkDirs, copyDirs, symlinkFiles, jsFiles, ignoreMask } = require('./config'); 10 11 if (require.main === module) { 12 (async () => { 13 try { 14 const t1 = Date.now(); 15 global.isError = false; // used to prevent further output to avoid concealing errors 16 const symlinks = symlinkFiles 17 .concat(dirs.map(d => `${d}/**`)) 18 .concat([`!${formatDirsForMatcher(dirs)}/**/*.js`]) 19 .concat([`!${formatDirsForMatcher(copyDirs)}/**`]) 20 21 const signatures = await getSignatures(); 22 const results = await Promise.all([ 23 getBrowserify(signatures), 24 getCopy(copyDirs.map(d => `${d}/**`), { ignore: ignoreMask }, signatures), 25 getJS(jsFiles, { ignore: ignoreMask }, signatures), 26 getSass('scss/*.scss', { root: 'scss', ignore: ignoreMask }, signatures), 27 getSymlinks(symlinks, { nodir: true, ignore: ignoreMask }, signatures), 28 getSymlinks(symlinkDirs, { ignore: ignoreMask }, signatures), 29 cleanUp(signatures) 30 ]); 31 32 await writeSignatures(signatures); 33 for (const result of results) { 34 onSuccess(result); 35 } 36 const t2 = Date.now(); 37 console.log(colors.yellow(`Total build time ${t2 - t1}ms`)); 38 } catch (err) { 39 process.exitCode = 1; 40 global.isError = true; 41 onError(err); 42 } 43 })(); 44 }