From c8e554e1021e38d2892822a84668a88bceeac907 Mon Sep 17 00:00:00 2001 From: Robert Long Date: Tue, 5 Feb 2019 17:07:05 -0800 Subject: [PATCH] Update threejs, add bundle analyzer as npm script for verification. --- package-lock.json | 116 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 6 ++- webpack.config.js | 4 ++ 3 files changed, 119 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c19b8992..8ba2b4e65 100644 --- a/package-lock.json +++ b/package-lock.json @@ -508,8 +508,8 @@ } }, "aframe": { - "version": "github:mozillareality/aframe#056a0befe55d3defd9c331684a496f7a55b21f29", - "from": "github:mozillareality/aframe#hubs/dev-9.0", + "version": "github:mozillareality/aframe#5c4333188503ca4804b7c767e5f4794e02bb6622", + "from": "github:mozillareality/aframe#5c4333188503ca4804b7c767e5f4794e02bb6622", "requires": { "animejs": "^2.2.0", "browserify-css": "^0.8.4", @@ -523,7 +523,6 @@ "present": "0.0.6", "promise-polyfill": "^3.1.0", "style-attr": "^1.0.2", - "three": "github:mozillareality/three.js#656d2503b069dfa99c4ded9ae63b334d6e694fc2", "three-bmfont-text": "^2.1.0", "webvr-polyfill": "^0.10.10" }, @@ -912,6 +911,12 @@ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", "dev": true }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -2088,6 +2093,18 @@ "callsite": "1.0.0" } }, + "bfj": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz", + "integrity": "sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "check-types": "^7.3.0", + "hoopy": "^0.1.2", + "tryer": "^1.0.0" + } + }, "big.js": { "version": "3.2.0", "resolved": "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz", @@ -2628,6 +2645,12 @@ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true }, + "check-types": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz", + "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==", + "dev": true + }, "chokidar": { "version": "2.0.4", "resolved": "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz", @@ -4002,6 +4025,12 @@ "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=" }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz", @@ -5000,6 +5029,12 @@ "resolved": "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz", @@ -6250,6 +6285,16 @@ "lodash": "^4.17.2" } }, + "gzip-size": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz", + "integrity": "sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^3.0.0" + } + }, "handle-thing": { "version": "1.2.5", "resolved": "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz", @@ -6491,6 +6536,12 @@ "parse-passwd": "^1.0.0" } }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true + }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz", @@ -9505,6 +9556,12 @@ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", + "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "dev": true + }, "opn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", @@ -12797,8 +12854,8 @@ "dev": true }, "three": { - "version": "github:mozillareality/three.js#656d2503b069dfa99c4ded9ae63b334d6e694fc2", - "from": "github:mozillareality/three.js#hubs/three-v101-and-prs" + "version": "github:mozillareality/three.js#967ee13719cea7c8ddb0ae524d70ef53b12964d8", + "from": "github:mozillareality/three.js#967ee13719cea7c8ddb0ae524d70ef53b12964d8" }, "three-bmfont-text": { "version": "2.3.0", @@ -13025,6 +13082,12 @@ "glob": "^7.1.2" } }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz", @@ -13815,6 +13878,49 @@ } } }, + "webpack-bundle-analyzer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.0.3.tgz", + "integrity": "sha512-naLWiRfmtH4UJgtUktRTLw6FdoZJ2RvCR9ePbwM9aRMsS/KjFerkPZG9epEvXRAw5d5oPdrs9+3p+afNjxW8Xw==", + "dev": true, + "requires": { + "acorn": "^5.7.3", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.10", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "ws": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.3.tgz", + "integrity": "sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, "webpack-cli": { "version": "2.1.5", "resolved": "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.1.5.tgz", diff --git a/package.json b/package.json index 4a8dfa53d..e55d5f5d2 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "scripts": { "start": "webpack-dev-server --mode=development", "build": "rimraf ./dist && webpack --mode=production", + "bundle-analyzer": "webpack-dev-server --mode=production --env.BUNDLE_ANALYZER", "doc": "node ./scripts/doc/build.js", "prettier": "prettier --write '*.js' 'src/**/*.js'", "lint:js": "eslint '*.js' 'scripts/**/*.js' 'src/**/*.js'", @@ -26,7 +27,7 @@ "@fortawesome/fontawesome-svg-core": "^1.2.2", "@fortawesome/free-solid-svg-icons": "^5.2.0", "@fortawesome/react-fontawesome": "^0.1.0", - "aframe": "github:mozillareality/aframe#hubs/dev-9.0", + "aframe": "github:mozillareality/aframe#5c4333188503ca4804b7c767e5f4794e02bb6622", "aframe-billboard-component": "^1.0.0", "aframe-inspector": "^0.8.3", "aframe-motion-capture-components": "github:mozillareality/aframe-motion-capture-components#aframe090", @@ -63,7 +64,7 @@ "react-youtube": "^7.8.0", "screenfull": "^3.3.2", "super-hands": "github:mozillareality/aframe-super-hands-component#feature/drawing", - "three": "github:mozillareality/three.js#hubs/three-v101-and-prs", + "three": "github:mozillareality/three.js#967ee13719cea7c8ddb0ae524d70ef53b12964d8", "three-mesh-bvh": "github:mquander/three-mesh-bvh#global-three", "three-pathfinding": "github:mozillareality/three-pathfinding#hubs/master", "three-to-cannon": "1.3.0", @@ -105,6 +106,7 @@ "stylelint-scss": "^3.2.0", "url-loader": "^1.0.1", "webpack": "^4.16.2", + "webpack-bundle-analyzer": "^3.0.3", "webpack-cli": "^2.0.9", "webpack-dev-server": "^3.1.7", "worker-loader": "^2.0.0" diff --git a/webpack.config.js b/webpack.config.js index d120a579a..5a99907f4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -12,6 +12,7 @@ const HTMLWebpackPlugin = require("html-webpack-plugin"); const ExtractTextPlugin = require("extract-text-webpack-plugin"); const CopyWebpackPlugin = require("copy-webpack-plugin"); const UglifyJsPlugin = require("uglifyjs-webpack-plugin"); +const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin; function createHTTPSConfig() { // Generate certs for the local webpack-dev-server. @@ -211,6 +212,9 @@ module.exports = (env, argv) => ({ } }, plugins: [ + new BundleAnalyzerPlugin({ + analyzerMode: env && env.BUNDLE_ANALYZER ? "server" : "disabled" + }), // Each output page needs a HTMLWebpackPlugin entry new HTMLWebpackPlugin({ filename: "index.html",