From 714971cccc19fb57d1ef114aa916ba2287da14fc Mon Sep 17 00:00:00 2001
From: Christopher Chedeau <vjeux@fb.com>
Date: Fri, 15 Jul 2016 14:43:06 -0700
Subject: [PATCH] Move all the scripts to the scripts/ folder and use them from
 the scripts section of package.json

---
 global-cli/index.js              |  1 +
 package.json                     |  6 ++----
 scripts/build.js                 | 15 +++++++++++++++
 init.js => scripts/init.js       |  0
 devServer.js => scripts/start.js |  4 +++-
 5 files changed, 21 insertions(+), 5 deletions(-)
 create mode 100644 scripts/build.js
 rename init.js => scripts/init.js (100%)
 rename devServer.js => scripts/start.js (88%)

diff --git a/global-cli/index.js b/global-cli/index.js
index f76d7adea..61a091085 100644
--- a/global-cli/index.js
+++ b/global-cli/index.js
@@ -115,6 +115,7 @@ function run(root, appName, version, verbose) {
       process.cwd(),
       'node_modules',
       'create-react-app-scripts',
+      'scripts',
       'init.js'
     );
     var init = require(scriptsPath);
diff --git a/package.json b/package.json
index ba969cfa1..0744588e1 100644
--- a/package.json
+++ b/package.json
@@ -2,8 +2,8 @@
   "name": "create-react-app-scripts",
   "version": "0.0.1",
   "scripts": {
-    "start": "cross-env NODE_ENV=development node devServer.js",
-    "build": "rimraf build && cross-env NODE_ENV=production webpack --config webpack.config.prod.js"
+    "start": "node scripts/start.js",
+    "build": "node scripts/build.js"
   },
   "dependencies": {
     "autoprefixer": "^6.3.7",
@@ -15,7 +15,6 @@
     "babel-preset-es2015": "^6.9.0",
     "babel-preset-es2016": "^6.11.3",
     "babel-preset-react": "^6.11.1",
-    "cross-env": "^2.0.0",
     "css-loader": "^0.23.1",
     "eslint": "^2.13.1",
     "eslint-config-airbnb": "^9.0.1",
@@ -27,7 +26,6 @@
     "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
new file mode 100644
index 000000000..70c2e7555
--- /dev/null
+++ b/scripts/build.js
@@ -0,0 +1,15 @@
+process.env.NODE_ENV = 'production';
+
+var spawnSync = require('child_process').spawnSync;
+var webpack = require('webpack');
+var config = require('../webpack.config.prod');
+
+spawnSync('rm', ['-rf', 'build']);
+webpack(config).run(function(err, stats) {
+  if (err) {
+    console.error(err);
+    process.exit(1);
+  }
+
+  console.log('Build successfully generated in the build/ folder');
+});
diff --git a/init.js b/scripts/init.js
similarity index 100%
rename from init.js
rename to scripts/init.js
diff --git a/devServer.js b/scripts/start.js
similarity index 88%
rename from devServer.js
rename to scripts/start.js
index 944238120..55ac226a7 100644
--- a/devServer.js
+++ b/scripts/start.js
@@ -1,6 +1,8 @@
+process.env.NODE_ENV = 'development';
+
 var webpack = require('webpack');
 var WebpackDevServer = require('webpack-dev-server');
-var config = require('./webpack.config.dev');
+var config = require('../webpack.config.dev');
 
 new WebpackDevServer(webpack(config), {
   publicPath: config.output.publicPath,
-- 
GitLab