diff --git a/changelogs/unreleased/babel-all-the-things.yml b/changelogs/unreleased/babel-all-the-things.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fda1c3bd562a28b31eab8aff08cf4e95b70c466e
--- /dev/null
+++ b/changelogs/unreleased/babel-all-the-things.yml
@@ -0,0 +1,5 @@
+---
+title: use babel to transpile all non-vendor javascript assets regardless of file
+  extension
+merge_request: 8988
+author:
diff --git a/config/webpack.config.js b/config/webpack.config.js
index 7cd92af7d930284bb0eea524b64ac154693ebe66..a156756f9ffb8fc50903e93274cb4c1006bec381 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -49,8 +49,8 @@ var config = {
   module: {
     loaders: [
       {
-        test: /\.es6$/,
-        exclude: /node_modules/,
+        test: /\.(js|es6)$/,
+        exclude: /(node_modules|vendor\/assets)/,
         loader: 'babel-loader',
         query: {
           // 'use strict' was broken in sprockets-es6 due to sprockets concatination method.
diff --git a/package.json b/package.json
index 73fb487b973dabd260f8f7e88d77410339b8b49c..9581d9662379c3e49049565ec97f025971bccbab 100644
--- a/package.json
+++ b/package.json
@@ -1,12 +1,14 @@
 {
   "private": true,
   "scripts": {
-    "dev-server": "node_modules/.bin/webpack-dev-server --config config/webpack.config.js",
+    "dev-server": "webpack-dev-server --config config/webpack.config.js",
     "eslint": "eslint --max-warnings 0 --ext .js,.js.es6 .",
     "eslint-fix": "npm run eslint -- --fix",
     "eslint-report": "npm run eslint -- --format html --output-file ./eslint-report.html",
     "karma": "karma start config/karma.config.js --single-run",
-    "karma-start": "karma start config/karma.config.js"
+    "karma-start": "karma start config/karma.config.js",
+    "webpack": "webpack --config config/webpack.config.js",
+    "webpack-prod": "NODE_ENV=production npm run webpack"
   },
   "dependencies": {
     "babel": "^5.8.38",