diff --git a/.travis.yml b/.travis.yml
index 2c60bc2674bcd3ff0ee817f8398c781de383c66b..b08d2bf6b25d2b7c2d140780b9588b85a88e3721 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,7 @@
 language: node_js
 node_js:
   - 6
-  - 7
+  - 8
 cache:
   directories:
   - node_modules
diff --git a/tasks/e2e-installs.sh b/tasks/e2e-installs.sh
index 7ea70fac6c3213001b1e8fc880d9947e15594237..073fc8df67d1a8f7137be2dc5418d95df59eecb9 100755
--- a/tasks/e2e-installs.sh
+++ b/tasks/e2e-installs.sh
@@ -95,7 +95,11 @@ fi
 
 if hash npm 2>/dev/null
 then
-  npm cache clean
+  # npm 5 is too buggy right now
+  if [ $(npm -v | head -c 1) -eq 5 ]; then
+    npm i -g npm@^4.x
+  fi;
+  npm cache clean || npm cache verify
 fi
 
 # Prevent lerna bootstrap, we only want top-level dependencies
diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh
index fcd687e4b0dc8650563ab7b1366471124224ed50..7f97fdc440c63661539dc238741c45fda6c4b5c6 100755
--- a/tasks/e2e-kitchensink.sh
+++ b/tasks/e2e-kitchensink.sh
@@ -87,7 +87,11 @@ fi
 
 if hash npm 2>/dev/null
 then
-  npm cache clean
+  # npm 5 is too buggy right now
+  if [ $(npm -v | head -c 1) -eq 5 ]; then
+    npm i -g npm@^4.x
+  fi;
+  npm cache clean || npm cache verify
 fi
 
 # Prevent lerna bootstrap, we only want top-level dependencies
diff --git a/tasks/e2e-simple.sh b/tasks/e2e-simple.sh
index 163bec0818a0de4deba0ee75345689c50f557b0d..cdcf4a63d9a1fb843fd2159c94b4b5d320d1d380 100755
--- a/tasks/e2e-simple.sh
+++ b/tasks/e2e-simple.sh
@@ -86,7 +86,11 @@ fi
 
 if hash npm 2>/dev/null
 then
-  npm cache clean
+  # npm 5 is too buggy right now
+  if [ $(npm -v | head -c 1) -eq 5 ]; then
+    npm i -g npm@^4.x
+  fi;
+  npm cache clean || npm cache verify
 fi
 
 # Prevent lerna bootstrap, we only want top-level dependencies