diff --git a/.travis.yml b/.travis.yml
index 8d29d0a60490d074e8eb23b3a035f9e2be0b9a91..a748ccb788e79343c842da9b23c7bed79bd485c1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,22 +4,22 @@ language: node_js
 git:
   depth: 3
 node_js:
-  - "6"
   - "8"
+  - "10"
 install:
   - bundle install --deployment --jobs=3 --retry=3 --clean
-  - npm install
+  - npm ci
 before_script:
   - google-chrome-stable --product-version
 script:
   - npm test || travis_terminate 1
-  - if [[ "$TRAVIS_NODE_VERSION" = "8" ]]; then npm run linkinator; fi
-  - if [[ "$TRAVIS_NODE_VERSION" = "8" && "$TRAVIS_EVENT_TYPE" = "push" && ! `git log --format=%B --no-merges -n 1 | grep '\[skip browser\]'` ]]; then npm run js-test-cloud; fi
+  - if [[ "$TRAVIS_NODE_VERSION" = "10" ]]; then npm run linkinator; fi
+  - if [[ "$TRAVIS_NODE_VERSION" = "10" && "$TRAVIS_EVENT_TYPE" = "push" && ! `git log --format=%B --no-merges -n 1 | grep '\[skip browser\]'` ]]; then npm run js-test-cloud; fi
 after_success:
-  - if [[ "$TRAVIS_NODE_VERSION" = "8" ]]; then npm run coveralls; fi
+  - if [[ "$TRAVIS_NODE_VERSION" = "10" ]]; then npm run coveralls; fi
 cache:
   directories:
-    - node_modules
+    - "$HOME/.npm"
     - vendor/bundle
 notifications:
   email: false
diff --git a/package.json b/package.json
index 73644876eb99b7d1943e5b769cb9b865bac26dfd..70fb5f367ba22233a38f2f62b610d7d42d04adb6 100644
--- a/package.json
+++ b/package.json
@@ -145,7 +145,7 @@
     "vnu-jar": "18.11.5"
   },
   "engines": {
-    "node": ">=6"
+    "node": ">=8"
   },
   "files": [
     "dist/{css,js}/*.{css,js,map}",