diff --git a/scripts/clean.js b/scripts/clean.js index d1a61e9eccb1449e6c19cba674c3656fda66c9bd..1dbb4cd1bc5910390183e2ed1b8a2922e1a84499 100644 --- a/scripts/clean.js +++ b/scripts/clean.js @@ -7,6 +7,23 @@ const fs = require('fs'); const path = require('path'); +function removeDir(dirPath) { + for (const ent of fs.readdirSync(dirPath)) { + const entryPath = path.join(dirPath, ent); + remove(entryPath); + } + + fs.rmdirSync(dirPath); +} + +function remove(entryPath) { + const st = fs.statSync(entryPath); + if (st.isDirectory()) + removeDir(entryPath); + else + fs.unlinkSync(entryPath); +} + const toClean = [ path.resolve(__dirname, '../build'), path.resolve(__dirname, '../lib'), @@ -14,6 +31,11 @@ const toClean = [ ]; toClean.forEach(ph => { - if (fs.existsSync(ph)) - fs.rm(ph, { recursive: true }, err => { if (err) console.warn(`Failed to delete ${ph}: ${err}`); }); + if (fs.existsSync(ph)) { + try { + remove(ph); + } catch (err) { + console.warn(`Cleanup failed: ${err}`); + } + } });