diff --git a/tasks/cra.sh b/tasks/cra.sh
index c4d9e42bd039605d6c0bdf08cd053343f573ef8e..0271536d706161b30adf54e9272433d51d7446e8 100755
--- a/tasks/cra.sh
+++ b/tasks/cra.sh
@@ -56,6 +56,9 @@ $root_path/node_modules/.bin/lerna bootstrap
 
 cd packages/react-scripts
 
+# Save package.json because we're going to touch it
+cp package.json package.json.orig
+
 # Like bundle-deps, this script modifies packages/react-scripts/package.json,
 # copying own dependencies (those in the `packages` dir) to bundledDependencies
 node $root_path/tasks/bundle-own-deps.js
@@ -63,6 +66,11 @@ node $root_path/tasks/bundle-own-deps.js
 # Finally, pack react-scripts
 scripts_path=$root_path/packages/react-scripts/`npm pack`
 
+# Restore package.json
+rm package.json
+mv package.json.orig package.json
+
+
 # ******************************************************************************
 # Now that we have packed them, call the global CLI.
 # ******************************************************************************
diff --git a/tasks/e2e.sh b/tasks/e2e.sh
index 22d36b488a01e5d22553fedeb7d1e0615224adb7..88e1fdf4e208a14aa66719b9dc70a0f6d4682d64 100755
--- a/tasks/e2e.sh
+++ b/tasks/e2e.sh
@@ -19,7 +19,7 @@ function cleanup {
   cd $root_path
   # Uncomment when snapshot testing is enabled by default:
   # rm ./packages/react-scripts/template/src/__snapshots__/App.test.js.snap
-  rm -rf $temp_cli_path $temp_app_path $clean_path
+  rm -rf $temp_cli_path $temp_app_path
 }
 
 # Error messages are redirected to stderr
@@ -53,7 +53,9 @@ set -x
 cd ..
 root_path=$PWD
 
-# Lint
+npm install
+
+# Lint own code
 ./node_modules/.bin/eslint --ignore-path .gitignore ./
 
 # ******************************************************************************
@@ -61,8 +63,6 @@ root_path=$PWD
 # This does not affect our users but makes sure we can develop it.
 # ******************************************************************************
 
-npm install
-
 # Test local build command
 npm run build
 # Check for expected output
@@ -84,45 +84,19 @@ npm start -- --smoke-test
 # Next, pack react-scripts and create-react-app so we can verify they work.
 # ******************************************************************************
 
-# Pack CLI (it doesn't need cleaning)
+# Pack CLI
 cd $root_path/packages/create-react-app
 cli_path=$PWD/`npm pack`
 
-# Packing react-scripts takes more work because we want to clean it up first.
-# Create a temporary clean folder that contains production only code.
-# Do not overwrite any files in the current folder.
-clean_path=`mktemp -d 2>/dev/null || mktemp -d -t 'clean_path'`
-
-# Copy some of the react-scripts project files to the temporary folder.
-# Exclude folders that definitely won’t be part of the package from processing.
-# We will strip the dev-only code there, `npm pack`, and copy the package back.
-cd $root_path
-rsync -av --exclude='.git' --exclude=$clean_path\
-  --exclude='node_modules' --exclude='build'\
-  './' $clean_path  >/dev/null
-
-# Open the clean folder
-cd $clean_path/packages/react-scripts
-
-# Now remove all the code relevant to development of Create React App.
-files="$(find -L . -name "*.js" -type f)"
-for file in $files; do
-  sed -i.bak '/\/\/ @remove-on-publish-begin/,/\/\/ @remove-on-publish-end/d' $file
-  rm $file.bak
-done
-
-# Install all our packages
-cd $clean_path
-$root_path/node_modules/.bin/lerna bootstrap
-
-cd $clean_path/packages/react-scripts
+# Go to react-scripts
+cd $root_path/packages/react-scripts
 
 # Like bundle-deps, this script modifies packages/react-scripts/package.json,
 # copying own dependencies (those in the `packages` dir) to bundledDependencies
-node $clean_path/tasks/bundle-own-deps.js
+node $root_path/tasks/bundle-own-deps.js
 
 # Finally, pack react-scripts
-scripts_path=$clean_path/packages/react-scripts/`npm pack`
+scripts_path=$root_path/packages/react-scripts/`npm pack`
 
 # ******************************************************************************
 # Now that we have packed them, create a clean app folder and install them.
@@ -168,9 +142,15 @@ npm start -- --smoke-test
 # Finally, let's check that everything still works after ejecting.
 # ******************************************************************************
 
-# Eject
+# Eject...
 echo yes | npm run eject
 
+# ...but still link to the local packages
+npm link $root_path/packages/babel-preset-react-app
+npm link $root_path/packages/eslint-config-react-app
+npm link $root_path/packages/react-dev-utils
+npm link $root_path/packages/react-scripts
+
 # Test the build
 npm run build
 # Check for expected output