Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- ...
- ...
- ...
- ...
- "scripts": {
- "lint:js": "eslint src tools",
- "lint:css": "stylelint "src/**/*.{css,less,scss,sss}"",
- "lint": "npm run lint:js && npm run lint:css",
- "test": "mocha "src/**/*.test.js" --require babel-register --require test/setup.js",
- "test:watch": "npm run test -- --reporter min --watch",
- "clean": "babel-node tools/run clean",
- "copy": "babel-node tools/run copy",
- "extractMessages": "babel-node tools/run extractMessages",
- "bundle": "babel-node tools/run bundle",
- "build": "babel-node tools/run build",
- "deploy": "babel-node tools/run deployToAzureWebApps",
- "render": "babel-node tools/run render",
- "serve": "babel-node tools/run runServer",
- "start": "babel-node tools/run start"
- }
- }
- app.use((err, req, res, next) => { // eslint-disable-line no-unused-vars
- console.log(pe.render(err)); // eslint-disable-line no-console
- const locale = req.language;
- const html = ReactDOM.renderToStaticMarkup(
- <Html
- title="Internal Server Error"
- description={err.message}
- style={errorPageStyle._getCss()} // eslint-disable-line no-underscore-dangle
- lang={locale}
- >
- {ReactDOM.renderToString(
- <IntlProvider locale={locale}>
- <ErrorPageWithoutStyle error={err} />
- </IntlProvider>,
- )}
- </Html>,
- );
- res.status(err.status || 500);
- res.send(`<!doctype html>${html}`);
- });
- app.listen(port, () => {
- console.log(`The server is running at http://localhost:${port}/`);
- });
- import React, { PropTypes } from 'react';
- import serialize from 'serialize-javascript';
- import { analytics } from '../config';
- class Html extends React.Component {
- static propTypes = {
- title: PropTypes.string.isRequired,
- description: PropTypes.string.isRequired,
- style: PropTypes.string,
- script: PropTypes.string,
- chunk: PropTypes.string,
- state: PropTypes.object,
- lang: PropTypes.string,
- children: PropTypes.string,
- };
- render() {
- const { title, description, style, script, chunk, state, lang, children } = this.props;
- return (
- <html className="no-js" lang={lang}>
- <head>
- <meta charSet="utf-8" />
- <meta httpEquiv="x-ua-compatible" content="ie=edge" />
- <title>{title}</title>
- <meta name="description" content={description} />
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <link rel="apple-touch-icon" href="apple-touch-icon.png" />
- <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,400,300,600" />
- <script src="/js/modernizr.custom.js" />
- {style && <style id="css" dangerouslySetInnerHTML={{ __html: style }} />}
- </head>
- <body>
- <div id="app" dangerouslySetInnerHTML={{ __html: children }} />
- {state && (
- <script
- dangerouslySetInnerHTML={{ __html:
- `window.APP_STATE=${serialize(state, { isJSON: true })}` }}
- />
- )}
- {script && <script src={script} />}
- {chunk && <script src={chunk} />}
- {analytics.google.trackingId &&
- <script
- dangerouslySetInnerHTML={{ __html:
- 'window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;' +
- `ga('create','${analytics.google.trackingId}','auto');ga('send','pageview')` }}
- />
- }
- {analytics.google.trackingId &&
- <script src="https://www.google-analytics.com/analytics.js" async defer />
- }
- <script src="/js/classie.js" />
- <script src="/js/progressButton.js" />
- </body>
- </html>
- );
- }
- }
- export default Html;
Add Comment
Please, Sign In to add comment