Skip to content

Commit d96b9f5

Browse files
committed
Update server rendering variables and configuration
1 parent dee7121 commit d96b9f5

File tree

4 files changed

+24
-18
lines changed

4 files changed

+24
-18
lines changed

common/layouts/server.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
<meta charset="utf-8" />
66
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width height=device-height" />
77
<link rel="shortcut icon" type="image/x-icon" href="<%= favicon %>">
8-
<link type="text/css" rel="stylesheet" href="<%= stylesheet %>" />
8+
<link type="text/css" rel="stylesheet" href="<%= vendorCss %>" />
9+
<link type="text/css" rel="stylesheet" href="<%= appCss %>" />
910
</head>
1011
<body>
1112
<div id="app"><%= html %></div>

server/config.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
'use strict';
1+
require('dotenv-safe').load();
22

3-
const isDev = process.env.NODE_ENV === 'development';
3+
const { NODE_ENV, APPLICATION_PORT, ASSET_URL } = require('../webpack/constants');
4+
const isDev = NODE_ENV === 'development';
45
const configFile = isDev ? 'development' : 'production';
56
const webpackConfig = require(`../webpack/${configFile}`).default;
6-
const applicationPort = process.env.APPLICATION_PORT || (isDev ? 3000 : 80);
7+
const applicationPort = APPLICATION_PORT || 3000;
78
import packageJson from '../package.json';
89

910
export default {
@@ -13,5 +14,5 @@ export default {
1314

1415
// launch environment
1516
port: applicationPort,
16-
assetHost: process.env.ASSET_HOST || webpackConfig.output.publicPath
17+
assetUrl: ASSET_URL || webpackConfig.output.publicPath
1718
};

server/index.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
require('babel-register');
22

3+
const fs = require('fs');
4+
const { addPath } = require('app-module-path');
5+
36
// Adds common/js to the app module path so we can access local modules without
47
// having to use relative paths on the server-side. This is done on the client
58
// side using webpack's `resolve`.
6-
require('app-module-path').addPath('common/js');
9+
addPath('common/js');
10+
11+
// HTML files are read as pure strings
12+
require.extensions['.html'] = (module, filename) => {
13+
module.exports = fs.readFileSync(filename, 'utf8');
14+
};
715

816
// css-modules-require-hook package allows us to require css files on the server.
917
require('css-modules-require-hook')({

server/render.js

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,12 @@
22
import { template } from 'lodash';
33
import { renderToString } from 'react-dom/server';
44
import config from './config';
5-
import fs from 'fs';
6-
7-
// Tell node.js to load html files as a string
8-
require.extensions['.html'] = (module, filename) => {
9-
module.exports = fs.readFileSync(filename, 'utf8');
10-
};
115

6+
const { NODE_ENV } = process.env;
127
const compile = template(require('../common/layouts/server.html'));
13-
const env = process.env.NODE_ENV || 'development';
8+
const env = NODE_ENV || 'development';
149

15-
export default function render(component, initialState) {
10+
export default function render(component, initialState = {}) {
1611
if (env === 'development') {
1712
global.ISOTools.refresh();
1813
}
@@ -23,9 +18,10 @@ export default function render(component, initialState) {
2318
const vendorJs = assets.javascript.vendor;
2419
const appJs = assets.javascript.app;
2520
const html = renderToString(component);
26-
const stylesheet = env === 'development'
27-
? config.assetHost + 'styles.css'
28-
: assets.styles.app;
21+
const vendorCss = assets.styles.vendor;
22+
const appCss = assets.styles.app;
2923

30-
return compile({ html, title, favicon, stylesheet, vendorJs, appJs, initialState });
24+
return compile(
25+
{ html, title, favicon, vendorCss, appCss, vendorJs, appJs, initialState }
26+
);
3127
}

0 commit comments

Comments
 (0)