🚇 The JavaScript bundler for React Native. https://facebook.github.io/metro
Go to file
Janic Duplessis 4681082e17 Packager - Fix absolute imports on Windows
Summary:
Absolute imports on Windows were broken, I'm not 100% sure when this happens but when I tested Exponent on Windows which uses `rn-cli.config.js` with
```js
getTransformOptions() {
    return {
      reactNativePath: path.resolve('./node_modules/react-native'),
      reactPath: path.resolve('./node_modules/react'),
    };
  }
```
it seemed to use absolute paths for these modules.

I also tested absolute paths in node repl and it does work for absolute paths of different formats. `C:/root/test.js`, `/root/test.js`, `C:\root\test.js` all do resolve properly to the same module.

To fix this I resolve the absolute path using `path.resolve` on Windows. Noop on other platforms to avoid the overhead since it's not necessary.

**Test plan**
- Tested that it fixed the bug I had when running Exponent on Windows.
- Updated the absolute path test to use forward slashes since this is what happens in practice when using `getTransformOptions`. We can't test all cases on linux since adding the drive letter au
Closes https://github.com/facebook/react-native/pull/12530

Differential Revision: D4634699

Pulled By: jeanlauliac

fbshipit-source-id: 0cf6528069b79cba2e0f79f48f5a524d59b7091e
2017-03-01 08:21:37 -08:00
.github Initial repository structure. 2017-01-26 12:56:40 +00:00
flow-typed Initial repository structure. 2017-01-26 12:56:40 +00:00
packages Packager - Fix absolute imports on Windows 2017-03-01 08:21:37 -08:00
scripts Initial repository structure. 2017-01-26 12:56:40 +00:00
.babelrc Add spread transform. 2017-02-23 16:16:00 +00:00
.eslintignore Initial repository structure. 2017-01-26 12:56:40 +00:00
.eslintrc Repo updates. 2017-02-28 11:45:45 +00:00
.flowconfig Fix flow errors. 2017-02-27 10:41:38 +00:00
.gitignore Use Yarn with lerna. 2017-03-01 11:01:35 +00:00
.npmignore Initial repository structure. 2017-01-26 12:56:40 +00:00
.travis.yml Initial repository structure. 2017-01-26 12:56:40 +00:00
CHANGELOG.md Initial repository structure. 2017-01-26 12:56:40 +00:00
CONTRIBUTING.md Initial repository structure. 2017-01-26 12:56:40 +00:00
LICENSE Initial repository structure. 2017-01-26 12:56:40 +00:00
PATENTS Initial repository structure. 2017-01-26 12:56:40 +00:00
README.md Initial repository structure. 2017-01-26 12:56:40 +00:00
appveyor.yml Initial repository structure. 2017-01-26 12:56:40 +00:00
lerna.json Use Yarn with lerna. 2017-03-01 11:01:35 +00:00
package.json Use Yarn with lerna. 2017-03-01 11:01:35 +00:00
yarn.lock Use Yarn with lerna. 2017-03-01 11:01:35 +00:00

README.md

metro-bundler Build Status Windows Build Status npm version

The JavaScript bundler for React Native