Skip to content

Commit

Permalink
Fix HMR on Windows
Browse files Browse the repository at this point in the history
Summary:Tested HMR on Windows and found 2 small issues related to paths that made it not work. Now it works nicely :)

**Test plan (required)**
Tested HMR in UIExplorer on Windows.
Closes #6678

Differential Revision: D3138379

fb-gh-sync-id: f27cd2fa21f95954685c8c6916d820f41bc187be
fbshipit-source-id: f27cd2fa21f95954685c8c6916d820f41bc187be
  • Loading branch information
janicduplessis authored and ide committed Apr 5, 2016
1 parent e8854b7 commit d457a18
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
6 changes: 6 additions & 0 deletions babel-preset/configs/hmr.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ module.exports = function(options, filename) {
var transform = filename
? './' + path.relative(path.dirname(filename), transformPath) // packager can't handle absolute paths
: hmrTransform;

// Fix the module path to use '/' on Windows.
if (path.sep === '\\') {
transform = transform.replace(/\\/g, '/');
}

return {
plugins: resolvePlugins([
[
Expand Down
19 changes: 10 additions & 9 deletions packager/react-packager/src/Bundler/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -189,23 +189,24 @@ class Bundler {
);
}

_hmrURL(prefix, platform, extensionOverride, path) {
const matchingRoot = this._projectRoots.find(root => path.startsWith(root));
_hmrURL(prefix, platform, extensionOverride, filePath) {
const matchingRoot = this._projectRoots.find(root => filePath.startsWith(root));

if (!matchingRoot) {
throw new Error('No matching project root for ', path);
throw new Error('No matching project root for ', filePath);
}

const extensionStart = path.lastIndexOf('.');
let resource = path.substring(
// Replaces '\' with '/' for Windows paths.
if (path.sep === '\\') {
filePath = filePath.replace(/\\/g, '/');
}

const extensionStart = filePath.lastIndexOf('.');
let resource = filePath.substring(
matchingRoot.length,
extensionStart !== -1 ? extensionStart : undefined,
);

const extension = extensionStart !== -1
? path.substring(extensionStart + 1)
: null;

return (
prefix + resource +
'.' + extensionOverride + '?' +
Expand Down

0 comments on commit d457a18

Please sign in to comment.