Skip to content

Commit 6cefe2f

Browse files
committed
Register hooks first, for both SSR and non-SSR
1 parent d9578f8 commit 6cefe2f

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

packages/react-scripts/scripts/start-ssr.js

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,35 +31,31 @@ const verifyTypeScriptSetup = require('./utils/verifyTypeScriptSetup');
3131
verifyTypeScriptSetup();
3232
// @remove-on-eject-end
3333

34-
const path = require('path');
3534
const fs = require('fs');
36-
const configFactory = require('../config/webpack.config.ssr');
3735
const { createCompiler } = require('react-dev-utils/WebpackDevServerUtils');
3836
const webpack = require('webpack');
3937

38+
const configFactory = require('../config/webpack.config.ssr');
4039
const paths = require('../config/paths');
40+
41+
const registerStatusFileHooks = require('./utils/registerStatusFileHooks');
42+
4143
const config = configFactory('development');
4244
const appName = require(paths.appPackageJson).name;
4345
const useYarn = fs.existsSync(paths.yarnLockFile);
4446

45-
const compiler = createCompiler(webpack, config, 'acorn-webapp', appName, useYarn);
47+
const compiler = createCompiler(webpack, config, appName, undefined, useYarn);
48+
49+
registerStatusFileHooks(compiler);
4650

4751
compiler.watch(
4852
{
4953
ignored: ['node_modules'],
5054
},
51-
(err, stats) => {
55+
err => {
5256
if (err) {
5357
console.log(err.message || err);
5458
process.exit(1);
5559
}
56-
},
60+
}
5761
);
58-
59-
compiler.hooks.invalid.tap('invalid', () => {
60-
fs.writeFileSync(path.join(paths.appBuildSsr, '.build-invalidated'), Date.now());
61-
});
62-
63-
compiler.hooks.done.tap('done', () => {
64-
fs.writeFileSync(path.join(paths.appBuildSsr, '.build-done'), Date.now());
65-
});

packages/react-scripts/scripts/start.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const verifyTypeScriptSetup = require('./utils/verifyTypeScriptSetup');
3131
verifyTypeScriptSetup();
3232
// @remove-on-eject-end
3333

34+
const path = require('path');
3435
const fs = require('fs');
3536
const chalk = require('chalk');
3637
const webpack = require('webpack');
@@ -48,6 +49,8 @@ const paths = require('../config/paths');
4849
const configFactory = require('../config/webpack.config');
4950
const createDevServerConfig = require('../config/webpackDevServer.config');
5051

52+
const registerStatusFileHooks = require('./utils/registerStatusFileHooks');
53+
5154
const useYarn = fs.existsSync(paths.yarnLockFile);
5255
const isInteractive = process.stdout.isTTY;
5356

@@ -97,6 +100,9 @@ checkBrowsers(paths.appPath, isInteractive)
97100
const urls = prepareUrls(protocol, HOST, port);
98101
// Create a webpack compiler that is configured with custom messages.
99102
const compiler = createCompiler(webpack, config, appName, urls, useYarn);
103+
104+
registerStatusFileHooks(compiler);
105+
100106
// Load proxy config
101107
const proxySetting = require(paths.appPackageJson).proxy;
102108
const proxyConfig = prepareProxy(proxySetting, paths.appPublic);
@@ -106,7 +112,7 @@ checkBrowsers(paths.appPath, isInteractive)
106112
urls.lanUrlForConfig
107113
);
108114

109-
serverConfig.writeToDisk = (filePath) => {
115+
serverConfig.writeToDisk = filePath => {
110116
return /loadable-stats\.json/.test(filePath);
111117
};
112118

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use strict';
2+
3+
const fs = require('fs');
4+
const path = require('path');
5+
6+
const paths = require('../../config/paths');
7+
8+
module.exports = function(compiler) {
9+
compiler.hooks.invalid.tap('invalid', () => {
10+
fs.writeFileSync(
11+
path.join(paths.appBuildSsr, '.build-status'),
12+
'IN_PROGRESS'
13+
);
14+
});
15+
compiler.hooks.done.tap('done', () => {
16+
fs.writeFileSync(path.join(paths.appBuildSsr, '.build-status'), 'DONE');
17+
});
18+
};

0 commit comments

Comments
 (0)