From 9a98851622b8d81046736483b6a8453acfb27d5b Mon Sep 17 00:00:00 2001
From: Dan Abramov <dan.abramov@gmail.com>
Date: Sun, 17 Jul 2016 19:47:48 +0100
Subject: [PATCH] Use rimraf as it handles edge cases

---
 package.json        | 1 +
 scripts/build.js    | 4 ++--
 scripts/graduate.js | 3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/package.json b/package.json
index b8287a093..1fe4552ec 100644
--- a/package.json
+++ b/package.json
@@ -42,6 +42,7 @@
     "html-webpack-plugin": "^2.22.0",
     "json-loader": "^0.5.4",
     "postcss-loader": "^0.9.1",
+    "rimraf": "^2.5.3",
     "style-loader": "^0.13.1",
     "url-loader": "^0.5.7",
     "webpack": "^1.13.1",
diff --git a/scripts/build.js b/scripts/build.js
index 00bd29c63..fb5571ce6 100644
--- a/scripts/build.js
+++ b/scripts/build.js
@@ -10,14 +10,14 @@
 process.env.NODE_ENV = 'production';
 
 var path = require('path');
-var spawnSync = require('child_process').spawnSync;
+var rimrafSync = require('rimraf').sync;
 var webpack = require('webpack');
 var config = require('../webpack.config.prod');
 
 var isInNodeModules = 'node_modules' ===
   path.basename(path.resolve(path.join(__dirname, '..', '..')));
 var relative = isInNodeModules ? '../..' : '.';
-spawnSync('rm', ['-rf', relative + '/build']);
+rimrafSync(relative + '/build');
 
 webpack(config).run(function(err, stats) {
   if (err) {
diff --git a/scripts/graduate.js b/scripts/graduate.js
index b0c7f99c7..af0a348e4 100644
--- a/scripts/graduate.js
+++ b/scripts/graduate.js
@@ -9,6 +9,7 @@
 
 var fs = require('fs');
 var path = require('path');
+var rimrafSync = require('rimraf').sync;
 var spawnSync = require('child_process').spawnSync;
 
 console.log('Graduating...');
@@ -74,7 +75,7 @@ fs.writeFileSync(
 console.log();
 
 console.log('Running npm install...');
-spawnSync('rm', ['-rf', selfPath]);
+rimrafSync(selfPath);
 spawnSync('npm', ['install'], {stdio: 'inherit'});
 console.log();
 
-- 
GitLab