diff --git a/webpack.config.js b/webpack.config.js
index 68c87a3ae6b59c8ae380d73d6f9d50d1249dcd13..fad2ba4bc4d18dcd69d12e5caf942db34b4a5c75 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -32,7 +32,20 @@ const base = {
         rules: [{
             test: /\.jsx?$/,
             loader: 'babel-loader',
-            include: path.resolve(__dirname, 'src')
+            include: [path.resolve(__dirname, 'src'), /node_modules[\\/]scratch-[^\\/]+[\\/]src/],
+            options: {
+                // Explicitly disable babelrc so we don't catch various config
+                // in much lower dependencies.
+                babelrc: false,
+                plugins: [
+                    'syntax-dynamic-import',
+                    'transform-async-to-generator',
+                    'transform-object-rest-spread',
+                    ['react-intl', {
+                        messagesDir: './translations/messages/'
+                    }]],
+                presets: [['env', {targets: {browsers: ['last 3 versions', 'Safari >= 8', 'iOS >= 8']}}], 'react']
+            }
         },
         {
             test: /\.css$/,