Skip to content

Commit f05943d

Browse files
janicduplessisfacebook-github-bot
authored andcommittedJul 18, 2018
Fix local-cli assetRegistryPath and middlewares (#20162)
Summary: This fixes some regressions with local-cli introduced in c4a66a8. - We didn't pass `assetRegistryPath` which caused the following error when loading the bundle: ``` error: bundling failed: Error: Unable to resolve module `missing-asset-registry-path` from `/Users/janic/Developer/react-native/RNTester/js/[email protected]`: Module `missing-asset-registry-path` does not exist in the Haste module map ``` - The middlewares were not added to the metro server. This causes some packager server features to fail. The one I noticed is that the /status endpoint didn't exist anymore which causes CI to fail and also Android to not load the bundle from the packager initially. The remote debugging feature was also broken. Pull Request resolved: #20162 Differential Revision: D8867610 Pulled By: hramos fbshipit-source-id: 8a08b7f3175692ab6ee73c0a7c25075091ae4792
1 parent 04aaa01 commit f05943d

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed
 

‎local-cli/server/middleware/MiddlewareManager.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ const indexPageMiddleware = require('./indexPage');
1919
const copyToClipBoardMiddleware = require('./copyToClipBoardMiddleware');
2020
const loadRawBodyMiddleware = require('./loadRawBodyMiddleware');
2121
const openStackFrameInEditorMiddleware = require('./openStackFrameInEditorMiddleware');
22-
const statusPageMiddleware = require('./statusPageMiddleware.js');
23-
const systraceProfileMiddleware = require('./systraceProfileMiddleware.js');
22+
const statusPageMiddleware = require('./statusPageMiddleware');
23+
const systraceProfileMiddleware = require('./systraceProfileMiddleware');
2424
const getDevToolsMiddleware = require('./getDevToolsMiddleware');
2525

2626
type Options = {

‎local-cli/server/runServer.js

+21-7
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,14 @@ const Metro = require('metro');
1616

1717
const {Terminal} = require('metro-core');
1818

19+
const messageSocket = require('./util/messageSocket');
1920
const morgan = require('morgan');
2021
const path = require('path');
22+
const webSocketProxy = require('./util/webSocketProxy');
2123
const MiddlewareManager = require('./middleware/MiddlewareManager');
2224

25+
const {ASSET_REGISTRY_PATH} = require('../core/Constants');
26+
2327
import type {ConfigT} from 'metro';
2428

2529
export type Args = {|
@@ -55,21 +59,31 @@ async function runServer(args: Args, config: ConfigT) {
5559
const serverInstance = await Metro.runServer({
5660
config: {
5761
...config,
58-
hmrEnabled: true,
59-
maxWorkers: args.maxWorkers,
60-
reporter,
61-
secure: args.https,
62-
secureKey: args.key,
63-
secureCert: args.cert,
62+
assetRegistryPath: ASSET_REGISTRY_PATH,
63+
enhanceMiddleware: middleware =>
64+
middlewareManager.getConnectInstance().use(middleware),
6465
transformModulePath: args.transformer
6566
? path.resolve(args.transformer)
6667
: config.getTransformModulePath(),
67-
watch: !args.nonPersistent,
6868
},
69+
hmrEnabled: true,
6970
host: args.host,
71+
maxWorkers: args.maxWorkers,
7072
port: args.port,
73+
reporter,
74+
secure: args.https,
75+
secureCert: args.cert,
76+
secureKey: args.key,
7177
});
7278

79+
const wsProxy = webSocketProxy.attachToServer(
80+
serverInstance,
81+
'/debugger-proxy',
82+
);
83+
const ms = messageSocket.attachToServer(serverInstance, '/message');
84+
middlewareManager.attachDevToolsSocket(wsProxy);
85+
middlewareManager.attachDevToolsSocket(ms);
86+
7387
// In Node 8, the default keep-alive for an HTTP connection is 5 seconds. In
7488
// early versions of Node 8, this was implemented in a buggy way which caused
7589
// some HTTP responses (like those containing large JS bundles) to be

0 commit comments

Comments
 (0)
Please sign in to comment.