Browse Source

build: use async remove method to handle errors better (#16917)

On windows removeSync randomly seems to fail with DIRNOTEMPTY. By using
the async version fs-extra will do some back-off-retry logic to
hopefully get this dir deleted
Samuel Attard 6 years ago
parent
commit
9e26dfaa06
1 changed files with 9 additions and 5 deletions
  1. 9 5
      script/gn-asar.js

+ 9 - 5
script/gn-asar.js

@@ -46,14 +46,18 @@ try {
   }
 } catch (err) {
   console.error('Unexpected error while generating ASAR', err)
-  fs.removeSync(tmpPath)
-  process.exit(1)
+  fs.remove(tmpPath)
+    .then(() => process.exit(1))
+    .catch(() => process.exit(1))
+  return
 }
 
 // Create the ASAR archive
 asar.createPackageWithOptions(tmpPath, out[0], {})
   .catch(err => {
-    fs.removeSync(tmpPath)
-    console.error('Unexpected error while generating ASAR', err)
-    process.exit(1)
+    const exit = () => {
+      console.error('Unexpected error while generating ASAR', err)
+      process.exit(1)
+    }
+    fs.remove(tmpPath).then(exit).catch(exit)
   }).then(() => fs.remove(tmpPath))