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: {
aliases: {
'moment-timezone': 'moment-timezone/builds/moment-timezone-with-data-2012-2022.js',
},
autoprefixer: '> 1%, last 2 versions, Firefox ESR, ios >= 8',
extra: {

48
package-lock.json generated
View File

@ -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",

View File

@ -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",

View File

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