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!
pull/1/head
Icedream 2017-08-19 16:49:02 +02:00
parent 02aff29fc1
commit b87e1e7577
Signed by: icedream
GPG Key ID: 1573F6D8EFE4D0CF
4 changed files with 58 additions and 1 deletions

View File

@ -12,6 +12,10 @@ module.exports = {
}, },
webpack: { webpack: {
aliases: {
'moment-timezone': 'moment-timezone/builds/moment-timezone-with-data-2012-2022.js',
},
autoprefixer: '> 1%, last 2 versions, Firefox ESR, ios >= 8', autoprefixer: '> 1%, last 2 versions, Firefox ESR, ios >= 8',
extra: { extra: {

48
package-lock.json generated
View File

@ -4980,6 +4980,14 @@
"integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=",
"dev": true "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": { "imurmurhash": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "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": { "prelude-ls": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@ -8780,6 +8818,11 @@
"utila": "0.4.0" "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": { "private": {
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
@ -10272,6 +10315,11 @@
"integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=", "integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=",
"dev": true "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": { "statuses": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",

View File

@ -5,7 +5,7 @@
"private": true, "private": true,
"main": "src/index.jsx", "main": "src/index.jsx",
"scripts": { "scripts": {
"build": "nwb build-react-app ./src", "build": "nwb build-react-app ./src --preact",
"clean": "nwb clean-app", "clean": "nwb clean-app",
"start": "nwb serve-react-app ./src", "start": "nwb serve-react-app ./src",
"test": "nwb test-react", "test": "nwb test-react",
@ -45,6 +45,8 @@
"dependencies": { "dependencies": {
"moment-timezone": "^0.5.13", "moment-timezone": "^0.5.13",
"normalize-scss": "^7.0.0", "normalize-scss": "^7.0.0",
"preact": "^8.2.1",
"preact-compat": "^3.17.0",
"prop-types": "^15.5.10", "prop-types": "^15.5.10",
"react": "^15.6.1", "react": "^15.6.1",
"react-dom": "^15.6.1", "react-dom": "^15.6.1",

View File

@ -50,6 +50,9 @@ class App extends React.Component {
} }
const { nextUpcomingDate } = this.state; const { nextUpcomingDate } = this.state;
if (!nextUpcomingDate) {
return null;
}
return ( return (
<div className={style.app}> <div className={style.app}>