diff --git a/.vscode/launch.json b/.vscode/launch.json index 279055bd0..068c13c54 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,7 +6,8 @@ "type": "chrome", "request": "attach", "port": 9222, - "webRoot": "${workspaceRoot}" + "webRoot": "/", + "url": "http://localhost:3000/index.dev.html" }, { "type": "node", diff --git a/scripts/start-dev-server.js b/scripts/start-dev-server.js index 1bb968808..b9040cffb 100644 --- a/scripts/start-dev-server.js +++ b/scripts/start-dev-server.js @@ -18,6 +18,7 @@ const chalk = require('chalk'); const http = require('http'); const path = require('path'); const Metro = require('../static/node_modules/metro'); +const MetroResolver = require('../static/node_modules/metro-resolver'); const fs = require('fs'); const Watchman = require('../static/watchman'); @@ -69,6 +70,16 @@ function startMetroServer(app) { }, resolver: { blacklistRE: /(\/|\\)(sonar|flipper|flipper-public)(\/|\\)(dist|doctor)(\/|\\)|(\.native\.js$)/, + resolveRequest: (context, moduleName, platform) => { + if (moduleName.startsWith('./localhost:3000')) { + moduleName = moduleName.replace('./localhost:3000', '.'); + } + return MetroResolver.resolve( + {...context, resolveRequest: null}, + moduleName, + platform, + ); + }, }, watch: true, }).then(metroBundlerServer => {