diff --git a/package.json b/package.json
index cadbb07c5..e9892030b 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
     "url": "git+ssh://git@github.com/LLK/scratch-vm.git"
   },
   "main": "./dist/node/scratch-vm.js",
-  "browser": "./dist/web/scratch-vm.js",
+  "browser": "./src/index.js",
   "scripts": {
     "build": "webpack --progress --colors --bail",
     "coverage": "tap ./test/{unit,integration}/*.js --coverage --coverage-report=lcov",
@@ -27,6 +27,22 @@
     "watch": "webpack --progress --colors --watch",
     "version": "json -f package.json -I -e \"this.repository.sha = '$(git log -n1 --pretty=format:%H)'\""
   },
+  "dependencies": {
+    "arraybuffer-loader": "^1.0.3",
+    "decode-html": "2.0.0",
+    "diff-match-patch": "1.0.0",
+    "escape-html": "1.0.3",
+    "format-message": "5.2.1",
+    "htmlparser2": "3.9.2",
+    "immutable": "3.8.1",
+    "jszip": "^3.1.5",
+    "minilog": "3.1.0",
+    "nets": "3.2.0",
+    "scratch-parser": "4.1.1",
+    "socket.io-client": "2.0.4",
+    "text-encoding": "0.6.4",
+    "worker-loader": "^1.1.1"
+  },
   "devDependencies": {
     "adm-zip": "0.4.7",
     "arraybuffer-loader": "^1.0.3",
@@ -36,42 +52,27 @@
     "babel-preset-env": "^1.6.1",
     "canvas-toBlob": "1.0.0",
     "copy-webpack-plugin": "^4.5.1",
-    "decode-html": "2.0.0",
-    "diff-match-patch": "1.0.0",
-    "escape-html": "1.0.3",
     "eslint": "^4.5.0",
     "eslint-config-scratch": "^5.0.0",
     "expose-loader": "0.7.5",
     "file-loader": "^1.1.6",
-    "format-message": "5.2.1",
     "format-message-cli": "5.2.1",
     "gh-pages": "^1.1.0",
-    "highlightjs": "^9.8.0",
-    "htmlparser2": "3.9.2",
-    "immutable": "3.8.1",
     "in-publish": "^2.0.0",
     "json": "^9.0.4",
-    "jszip": "^3.1.5",
     "lodash.defaultsdeep": "4.6.0",
-    "minilog": "3.1.0",
-    "nets": "3.2.0",
     "pngjs": "^3.3.2",
-    "promise": "8.0.1",
     "scratch-audio": "latest",
     "scratch-blocks": "latest",
-    "scratch-parser": "4.1.1",
     "scratch-render": "latest",
     "scratch-storage": "^0.4.0",
     "scratch-translate-extension-languages": "0.0.20180521154850",
     "script-loader": "0.7.2",
-    "socket.io-client": "2.0.4",
     "stats.js": "^0.17.0",
     "tap": "^11.0.1",
-    "text-encoding": "0.6.4",
     "tiny-worker": "^2.1.1",
     "webpack": "^4.8.0",
     "webpack-cli": "^2.0.15",
-    "webpack-dev-server": "^3.1.3",
-    "worker-loader": "^1.1.1"
+    "webpack-dev-server": "^3.1.3"
   }
 }
diff --git a/src/playground/index.html b/src/playground/index.html
index be633b620..7f07f9267 100644
--- a/src/playground/index.html
+++ b/src/playground/index.html
@@ -79,7 +79,7 @@
 
   <div id="blocks"></div>
 
-  <!-- FPS counter, Syntax highlighter, Blocks, Renderer -->
+  <!-- FPS counter, Blocks, Renderer -->
   <script src="./vendor.js"></script>
   <!-- Storage module -->
   <script src="./scratch-storage.js"></script>
diff --git a/webpack.config.js b/webpack.config.js
index 6eca43f5f..d87ece7bf 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -69,6 +69,19 @@ module.exports = [
         output: {
             libraryTarget: 'commonjs2',
             path: path.resolve('dist', 'node')
+        },
+        externals: {
+            'decode-html': true,
+            'escape-html': true,
+            'format-message': true,
+            'htmlparser2': true,
+            'immutable': true,
+            'jszip': true,
+            'minilog': true,
+            'nets': true,
+            'scratch-parser': true,
+            'socket.io-client': true,
+            'text-encoding': true
         }
     }),
     // Playground
@@ -79,8 +92,6 @@ module.exports = [
             'vendor': [
                 // FPS counter
                 'stats.js/build/stats.min.js',
-                // Syntax highlighter
-                'highlightjs/highlight.pack.min.js',
                 // Scratch Blocks
                 'scratch-blocks/dist/vertical.js',
                 // Audio
@@ -139,8 +150,6 @@ module.exports = [
             new CopyWebpackPlugin([{
                 from: 'node_modules/scratch-blocks/media',
                 to: 'media'
-            }, {
-                from: 'node_modules/highlightjs/styles/zenburn.css'
             }, {
                 from: 'node_modules/scratch-storage/dist/web'
             }, {