Skip to content

Instantly share code, notes, and snippets.

View kireerik's full-sized avatar
available for Full-Time Remote Offers

Erik Engi kireerik

available for Full-Time Remote Offers
View GitHub Profile
@kireerik
kireerik / static package.json
Created March 3, 2018 00:59
Material-UI: Get started (Fast!) ⚡ React 16+
{
"scripts": {
"static": "cross-env RAZZLE_STATIC=true razzle build && cross-env NODE_ENV=production node build/server.js"
}
}
@kireerik
kireerik / static.js
Created March 3, 2018 00:58
Material-UI: Get started (Fast!) ⚡ React 16+
import http from 'http'
import fs from 'fs-extra'
const staticDirectory = process.env.RAZZLE_STATIC_PATH || 'static'
http.get({url: 'http://' + process.env.HOST + ':' + process.env.PORT
, headers: {'User-Agent': 'all'}
}, response =>
response.on('data', html =>
fs.writeFile(staticDirectory + '/' + 'index.html', html)
@kireerik
kireerik / render Main.js
Last active March 3, 2018 00:57
Material-UI: Get started (Fast!) ⚡ React 16+
class Main extends Component {
constructor(properties) {
super(properties)
this.muiTheme = getMuiTheme({
userAgent: properties.userAgent
})
}
render = () =>
@kireerik
kireerik / hydrate client.js
Created March 3, 2018 00:52
Material-UI: Get started (Fast!) ⚡ React 16+
hydrate(<Application userAgent={navigator.userAgent} />, document.getElementById('root'))
@kireerik
kireerik / render server.js
Created March 3, 2018 00:51
Material-UI: Get started (Fast!) ⚡ React 16+
renderToString(<Application userAgent={request.headers['user-agent']} />)
@kireerik
kireerik / start package.json
Created March 3, 2018 00:49
Material-UI: Get started (Fast!) ⚡ React 16+
{
"scripts": {
"start": "razzle build && cross-env NODE_ENV=production node build/server.js"
}
}
@kireerik
kireerik / client.js
Last active March 3, 2018 00:48
Material-UI: Get started (Fast!) ⚡ React 16+
import {hydrate} from 'react-dom'
import Application from './application/Main'
hydrate(<Application />, document.getElementById('root'))
@kireerik
kireerik / index.js
Created March 3, 2018 00:47
Material-UI: Get started (Fast!) ⚡ React 16+
import express from 'express'
import server from './server'
export default express()
.use((request, response) => server.handle(request, response))
.listen(process.env.PORT)
@kireerik
kireerik / minification server.js
Created March 3, 2018 00:46
Material-UI: Get started (Fast!) ⚡ React 16+
import {minify} from 'html-minifier'
minify(
`<!DOCTYPE HTML><html lang="en">...</html>`
, {
collapseWhitespace: true
, removeComments: true
, minifyCSS: true
, minifyJS: true
})
@kireerik
kireerik / server.js
Last active March 3, 2018 01:11
Material-UI: Get started (Fast!) ⚡ React 16+
import {renderToString} from 'react-dom/server'
import {ServerStyleSheet} from 'styled-components'
import Application from './application/Main'
const sheet = new ServerStyleSheet()
, html = renderToString(sheet.collectStyles(<Application />))
, css = sheet.getStyleTags()
// server response to send: