const rimraf = require('rimraf'); const path = require('path'); const fs = require('fs'); const util = require('util'); const forEach = require('lodash/forEach'); const root = path.resolve(__dirname, '..'); const distPath = path.resolve(__dirname, '..', 'dist'); console.log('Removing', distPath); const distClearPromise = util.promisify(rimraf)(distPath); const oldPacksPromise = new Promise((resolve, reject) => { util.promisify(fs.readdir)(root) .then(files => { const promises = []; forEach(files, file => { if (/\.tgz$/.test(file)) { const fullPath = path.resolve(root, file); console.log('Removing', fullPath); promises.push(util.promisify(fs.unlink)(fullPath)); } }); Promise.all(promises).then(resolve, reject); }, reject); }); Promise.all([ distClearPromise, oldPacksPromise ]) .then(() => { console.log('Done'); process.exit() }, e => { console.error(e); });