From 2f016660e2b28fe1e09f44ea51e88bccbe3d51b3 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 5 Dec 2018 14:04:44 +0200 Subject: [PATCH] remove existing .js files on build --- src/cli.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/cli.js b/src/cli.js index 611cc251..04bdf1ee 100755 --- a/src/cli.js +++ b/src/cli.js @@ -1,4 +1,5 @@ const { resolve, relative, dirname, sep } = require("path"); +const glob = require("glob"); const usage = `Usage: ncc @@ -125,11 +126,19 @@ switch (args._[0]) { } ); ncc.then( - ({ code, map, assets }) => { + async ({ code, map, assets }) => { outDir = outDir || resolve("dist"); const fs = require("fs"); const mkdirp = require("mkdirp"); mkdirp.sync(outDir); + // remove all existing ".js" files in the out directory + await Promise.all( + (await new Promise((resolve, reject) => + glob(outDir + '/**/*.js', (err, files) => err ? reject(err) : resolve(files)) + )).map(file => + new Promise((resolve, reject) => fs.unlink(file, err => err ? reject(err) : resolve()) + )) + ); fs.writeFileSync(outDir + "/index.js", code); if (map) fs.writeFileSync(outDir + "/index.js.map", map);