Use a pre-renderer for faster loading

This commit is contained in:
Boris Kubiak 2018-07-03 21:48:08 +02:00
parent 98a15a582c
commit 6a6e352adc
7 changed files with 311 additions and 11 deletions

View file

@ -15,7 +15,9 @@ script:
# Cache busting # Cache busting
- COMMIT=$(git log --format='%h' -n 1) && - COMMIT=$(git log --format='%h' -n 1) &&
sed -i "s/index.js/index.$COMMIT.js/g" index.html && sed -i "s/index.js/index.$COMMIT.js/g" index.html &&
mv dist/index.js dist/index.$COMMIT.js sed -i "s/style.css/style.$COMMIT.css/g" index.html &&
mv dist/index.js dist/index.$COMMIT.js &&
mv dist/style.css dist/style.$COMMIT.css
deploy: deploy:
provider: pages provider: pages

View file

@ -14,16 +14,14 @@
<meta property="og:description" content="Vanity-ETH is an open source generator using your web browser to generate Ethereum <meta property="og:description" content="Vanity-ETH is an open source generator using your web browser to generate Ethereum
vanity addresses. You can get a custom ETH vanity address right now without the need to install any software. vanity addresses. You can get a custom ETH vanity address right now without the need to install any software.
Vanity-ETH provides an encrypted keystore compatible with MyEtherWallet, MetaMask, Mist, and geth." /> Vanity-ETH provides an encrypted keystore compatible with MyEtherWallet, MetaMask, Mist, and geth." />
<link rel="canonical" href="vanity-eth.tk/" /> <link rel="canonical" href="https://vanity-eth.tk/" />
<meta property="og:url" content="vanity-eth.tk/" /> <meta property="og:url" content="vanity-eth.tk/" />
<meta property="og:site_name" content="Vanity ETH" /> <meta property="og:site_name" content="Vanity ETH" />
<meta name="google-site-verification" content="DFWJVWz9IRrh-wjBxn0Y8ith5FTqMeJTSUtuJ595BEs" /> <meta name="google-site-verification" content="DFWJVWz9IRrh-wjBxn0Y8ith5FTqMeJTSUtuJ595BEs" />
<style>@keyframes spin{100%{transform:rotate(360deg)}}</style> <link rel="stylesheet" href="dist/style.css">
</head> </head>
<body style="background:#09c4c5;background:linear-gradient(140deg,#0ff0b3,#036ed9);height:100vh;margin:0;padding:0;display:flex;justify-content:center;align-items:center"> <body>
<div id="app"> <div id="app"></div>
<div class="spinner" style="pointer-events:none;width:2.5em;height:2.5em;border:.4em solid transparent;border-top-color:#fff;border-radius:50%;animation:spin 0.8s linear infinite"></div>
</div>
<script src="dist/index.js"></script> <script src="dist/index.js"></script>
</body> </body>
</html> </html>

287
package-lock.json generated
View file

@ -4,6 +4,38 @@
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@prerenderer/prerenderer": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/@prerenderer/prerenderer/-/prerenderer-0.7.1.tgz",
"integrity": "sha512-BgtsmvSDxEHoR1PSFk3olruz12at68r6Dr4e6FrdwzSJsSvinxCNFsXYMxkOyYTLbhTK9GBS/G0NAYE1BERL4Q==",
"requires": {
"express": "4.16.3",
"http-proxy-middleware": "0.18.0",
"portfinder": "1.0.13"
},
"dependencies": {
"http-proxy-middleware": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
"integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
"requires": {
"http-proxy": "1.16.2",
"is-glob": "4.0.0",
"lodash": "4.17.5",
"micromatch": "3.1.10"
}
}
}
},
"@prerenderer/renderer-puppeteer": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/@prerenderer/renderer-puppeteer/-/renderer-puppeteer-0.1.4.tgz",
"integrity": "sha512-z5WbndAto2YCjPqNEGt2G9kqa7+6fJMLPSk4i/qpmLwq1N8eRwSYnbnb4JSyg9O3sgs5k5amaP+4Wh2O4bURDQ==",
"requires": {
"promise-limit": "2.6.0",
"puppeteer": "1.5.0"
}
},
"abbrev": { "abbrev": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@ -53,6 +85,14 @@
} }
} }
}, },
"agent-base": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz",
"integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==",
"requires": {
"es6-promisify": "5.0.0"
}
},
"ajv": { "ajv": {
"version": "6.4.0", "version": "6.4.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz",
@ -300,6 +340,11 @@
"resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
"integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
}, },
"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=="
},
"asynckit": { "asynckit": {
"version": "0.4.0", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@ -1376,6 +1421,15 @@
"resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
"integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo="
}, },
"camel-case": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
"integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
"requires": {
"no-case": "2.3.2",
"upper-case": "1.1.3"
}
},
"camelcase": { "camelcase": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
@ -1566,6 +1620,14 @@
} }
} }
}, },
"clean-css": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
"integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
"requires": {
"source-map": "0.5.7"
}
},
"cli-boxes": { "cli-boxes": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
@ -2434,6 +2496,19 @@
"event-emitter": "0.3.5" "event-emitter": "0.3.5"
} }
}, },
"es6-promise": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ=="
},
"es6-promisify": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
"requires": {
"es6-promise": "4.2.4"
}
},
"es6-set": { "es6-set": {
"version": "0.1.5", "version": "0.1.5",
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
@ -3125,6 +3200,49 @@
} }
} }
}, },
"extract-text-webpack-plugin": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz",
"integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==",
"requires": {
"async": "2.6.0",
"loader-utils": "1.1.0",
"schema-utils": "0.3.0",
"webpack-sources": "1.1.0"
},
"dependencies": {
"ajv": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"requires": {
"co": "4.6.0",
"fast-deep-equal": "1.1.0",
"fast-json-stable-stringify": "2.0.0",
"json-schema-traverse": "0.3.1"
}
},
"schema-utils": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
"integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
"requires": {
"ajv": "5.5.2"
}
}
}
},
"extract-zip": {
"version": "1.6.7",
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
"integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
"requires": {
"concat-stream": "1.6.2",
"debug": "2.6.9",
"mkdirp": "0.5.1",
"yauzl": "2.4.1"
}
},
"extsprintf": { "extsprintf": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
@ -3158,6 +3276,14 @@
"websocket-driver": "0.7.0" "websocket-driver": "0.7.0"
} }
}, },
"fd-slicer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
"integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
"requires": {
"pend": "1.2.0"
}
},
"figures": { "figures": {
"version": "1.7.0", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
@ -4518,6 +4644,41 @@
"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
"integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8="
}, },
"html-minifier": {
"version": "3.5.18",
"resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.18.tgz",
"integrity": "sha512-sczoq/9zeXiKZMj8tsQzHJE7EyjrpMHvblTLuh9o8h5923a6Ts5uQ/3YdY+xIqJYRjzHQPlrHjfjh0BtwPJG0g==",
"requires": {
"camel-case": "3.0.0",
"clean-css": "4.1.11",
"commander": "2.16.0",
"he": "1.1.1",
"param-case": "2.1.1",
"relateurl": "0.2.7",
"uglify-js": "3.4.3"
},
"dependencies": {
"commander": {
"version": "2.16.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz",
"integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew=="
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"uglify-js": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.3.tgz",
"integrity": "sha512-RbOgGjF04sFUNSi8xGOTB9AmtVmMmVVAL5a7lxIgJ8urejJen+priq0ooRIHHa8AXI/dSvNF9yYMz9OP4PhybQ==",
"requires": {
"commander": "2.16.0",
"source-map": "0.6.1"
}
}
}
},
"http-deceiver": { "http-deceiver": {
"version": "1.2.7", "version": "1.2.7",
"resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
@ -4685,6 +4846,25 @@
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
}, },
"https-proxy-agent": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
"integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
"requires": {
"agent-base": "4.2.0",
"debug": "3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
}
}
},
"iconv-lite": { "iconv-lite": {
"version": "0.4.19", "version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
@ -5579,6 +5759,11 @@
"signal-exit": "3.0.2" "signal-exit": "3.0.2"
} }
}, },
"lower-case": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
"integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw="
},
"lowercase-keys": { "lowercase-keys": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
@ -5902,6 +6087,14 @@
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
}, },
"no-case": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
"integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
"requires": {
"lower-case": "1.1.4"
}
},
"node-forge": { "node-forge": {
"version": "0.7.1", "version": "0.7.1",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz",
@ -6353,6 +6546,14 @@
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
"integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg=="
}, },
"param-case": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
"integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
"requires": {
"no-case": "2.3.2"
}
},
"parse-asn1": { "parse-asn1": {
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
@ -6478,6 +6679,11 @@
"sha.js": "2.4.11" "sha.js": "2.4.11"
} }
}, },
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
},
"pify": { "pify": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
@ -7137,6 +7343,16 @@
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
}, },
"prerender-spa-plugin": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/prerender-spa-plugin/-/prerender-spa-plugin-3.2.1.tgz",
"integrity": "sha512-UHgpVAtnUP/usSnl3AnNjZRw8zEQzT4WmRWA7p2EqucgGYseDg9NAOyXPcUmMWdCx0UMYpetF36zyYtCF3AoBw==",
"requires": {
"@prerenderer/prerenderer": "0.7.1",
"@prerenderer/renderer-puppeteer": "0.1.4",
"html-minifier": "3.5.18"
}
},
"preserve": { "preserve": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
@ -7167,6 +7383,11 @@
"resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
"integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=" "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74="
}, },
"promise-limit": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/promise-limit/-/promise-limit-2.6.0.tgz",
"integrity": "sha512-ZyUYT6/nrx7oDInu6Go128Ck4N2aXqpV8G0QyU3ugGS0PRPOf5Y7v0IF0yZW2pwZCGtHzBftKievNj8491suJw=="
},
"proto-props": { "proto-props": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/proto-props/-/proto-props-1.1.0.tgz", "resolved": "https://registry.npmjs.org/proto-props/-/proto-props-1.1.0.tgz",
@ -7181,6 +7402,11 @@
"ipaddr.js": "1.6.0" "ipaddr.js": "1.6.0"
} }
}, },
"proxy-from-env": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
"integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
},
"prr": { "prr": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@ -7208,6 +7434,41 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
"integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0="
}, },
"puppeteer": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.5.0.tgz",
"integrity": "sha512-eELwFtFxL+uhmg4jPZOZXzSrPEYy4CaYQNbcchBbfxY+KjMpnv6XGf/aYWaQG49OTpfi2/DMziXtDM8XuJgoUA==",
"requires": {
"debug": "3.1.0",
"extract-zip": "1.6.7",
"https-proxy-agent": "2.2.1",
"mime": "2.3.1",
"progress": "2.0.0",
"proxy-from-env": "1.0.0",
"rimraf": "2.6.2",
"ws": "5.2.1"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"mime": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
"integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg=="
},
"progress": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
"integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8="
}
}
},
"q": { "q": {
"version": "1.5.1", "version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
@ -7518,6 +7779,11 @@
} }
} }
}, },
"relateurl": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
},
"remodal": { "remodal": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/remodal/-/remodal-1.1.1.tgz", "resolved": "https://registry.npmjs.org/remodal/-/remodal-1.1.1.tgz",
@ -8899,6 +9165,11 @@
} }
} }
}, },
"upper-case": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
"integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
},
"uri-js": { "uri-js": {
"version": "3.0.2", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz",
@ -9642,6 +9913,14 @@
"write-json-file": "2.3.0" "write-json-file": "2.3.0"
} }
}, },
"ws": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-5.2.1.tgz",
"integrity": "sha512-2NkHdPKjDBj3CHdnAGNpmlliryKqF+n9MYXX7/wsVC4yqYocKreKNjydPDvT3wShAZnndlM0RytEfTALCDvz7A==",
"requires": {
"async-limiter": "1.0.0"
}
},
"xdg-basedir": { "xdg-basedir": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
@ -9861,6 +10140,14 @@
"integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
} }
} }
},
"yauzl": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
"integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
"requires": {
"fd-slicer": "1.0.1"
}
} }
} }
} }

View file

@ -18,9 +18,11 @@
"crypto-js": "^3.1.9-1", "crypto-js": "^3.1.9-1",
"css-loader": "^0.28.7", "css-loader": "^0.28.7",
"downloadjs": "^1.4.7", "downloadjs": "^1.4.7",
"extract-text-webpack-plugin": "^3.0.2",
"file-loader": "^1.1.6", "file-loader": "^1.1.6",
"keccak": "^1.4.0", "keccak": "^1.4.0",
"node-sass": "^4.5.3", "node-sass": "^4.5.3",
"prerender-spa-plugin": "^3.2.1",
"randombytes": "^2.0.6", "randombytes": "^2.0.6",
"remodal": "^1.1.1", "remodal": "^1.1.1",
"sass-loader": "^6.0.6", "sass-loader": "^6.0.6",

View file

@ -1,5 +1,5 @@
<template> <template>
<div class="remodal-bg"> <div id="app" class="remodal-bg">
<div class="container" id="content"> <div class="container" id="content">
<!--Headline--> <!--Headline-->
<headline></headline> <headline></headline>

View file

@ -3,8 +3,6 @@
import Vue from 'vue'; import Vue from 'vue';
import App from './App.vue'; import App from './App.vue';
document.body.removeAttribute('style');
new Vue({ new Vue({
el: '#app', el: '#app',
render: h => h(App) render: h => h(App)

View file

@ -1,5 +1,7 @@
const path = require('path'); const path = require('path');
const webpack = require('webpack'); const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const PrerenderSpaPlugin = require('prerender-spa-plugin');
module.exports = { module.exports = {
entry: { entry: {
@ -14,7 +16,8 @@ module.exports = {
rules: [ rules: [
{ {
test: /\.vue$/, test: /\.vue$/,
loader: 'vue-loader' loader: 'vue-loader',
options: {extractCSS: process.env.NODE_ENV === 'production'}
}, },
{ {
test: /vanity\.js$/, test: /vanity\.js$/,
@ -64,6 +67,7 @@ module.exports = {
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
// http://vue-loader.vuejs.org/en/workflow/production.html // http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([ module.exports.plugins = (module.exports.plugins || []).concat([
new ExtractTextPlugin('style.css'),
new webpack.optimize.UglifyJsPlugin({ new webpack.optimize.UglifyJsPlugin({
sourceMap: false, sourceMap: false,
compress: { compress: {
@ -72,6 +76,15 @@ if (process.env.NODE_ENV === 'production') {
}), }),
new webpack.LoaderOptionsPlugin({ new webpack.LoaderOptionsPlugin({
minimize: true minimize: true
}),
new PrerenderSpaPlugin({
staticDir: path.join(__dirname),
routes: ['/'],
minify: {
collapseBooleanAttributes: true,
decodeEntities: true,
sortAttributes: true
}
}) })
]); ]);
} }