From b87e1e75775dca9f8bd8742a2332ae2edb4f5cbc Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Sat, 19 Aug 2017 16:49:02 +0200 Subject: [PATCH] Apply some measurements for shaving off the few kilobytes. - Shave off about 30 kB by building with preact instead of react. - Shave off another 20 kB by using a moment-timezone build with only data for 2012~2022. Should be updated in time! --- nwb.config.js | 4 ++++ package-lock.json | 48 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 4 +++- src/App.jsx | 3 +++ 4 files changed, 58 insertions(+), 1 deletion(-) diff --git a/nwb.config.js b/nwb.config.js index eb171e2..19ffc43 100644 --- a/nwb.config.js +++ b/nwb.config.js @@ -12,6 +12,10 @@ module.exports = { }, webpack: { + aliases: { + 'moment-timezone': 'moment-timezone/builds/moment-timezone-with-data-2012-2022.js', + }, + autoprefixer: '> 1%, last 2 versions, Firefox ESR, ios >= 8', extra: { diff --git a/package-lock.json b/package-lock.json index 5f6ceb9..aeb9ab6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4980,6 +4980,14 @@ "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", "dev": true }, + "immutability-helper": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.3.1.tgz", + "integrity": "sha1-jM/OkhVyCMEgsq+tftBcERFMCG4=", + "requires": { + "invariant": "2.2.2" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -8752,6 +8760,36 @@ } } }, + "preact": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-8.2.1.tgz", + "integrity": "sha1-Z0JD3wyEeITQGYNARKovzTEecu0=" + }, + "preact-compat": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/preact-compat/-/preact-compat-3.17.0.tgz", + "integrity": "sha1-Uoz9/DARkMGg9HVnM2vh9L4CZrM=", + "requires": { + "immutability-helper": "2.3.1", + "preact-render-to-string": "3.6.3", + "preact-transition-group": "1.1.1", + "prop-types": "15.5.10", + "standalone-react-addons-pure-render-mixin": "0.1.1" + } + }, + "preact-render-to-string": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-3.6.3.tgz", + "integrity": "sha1-SB0NW9rJGS0zR1V0N9XNAKoxIEM=", + "requires": { + "pretty-format": "3.8.0" + } + }, + "preact-transition-group": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/preact-transition-group/-/preact-transition-group-1.1.1.tgz", + "integrity": "sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=" + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -8780,6 +8818,11 @@ "utila": "0.4.0" } }, + "pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=" + }, "private": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", @@ -10272,6 +10315,11 @@ "integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=", "dev": true }, + "standalone-react-addons-pure-render-mixin": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz", + "integrity": "sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=" + }, "statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", diff --git a/package.json b/package.json index 6914296..487766e 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "private": true, "main": "src/index.jsx", "scripts": { - "build": "nwb build-react-app ./src", + "build": "nwb build-react-app ./src --preact", "clean": "nwb clean-app", "start": "nwb serve-react-app ./src", "test": "nwb test-react", @@ -45,6 +45,8 @@ "dependencies": { "moment-timezone": "^0.5.13", "normalize-scss": "^7.0.0", + "preact": "^8.2.1", + "preact-compat": "^3.17.0", "prop-types": "^15.5.10", "react": "^15.6.1", "react-dom": "^15.6.1", diff --git a/src/App.jsx b/src/App.jsx index 0b611ab..40bfbe5 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -50,6 +50,9 @@ class App extends React.Component { } const { nextUpcomingDate } = this.state; + if (!nextUpcomingDate) { + return null; + } return (