Commit Graph

10 Commits

Author SHA1 Message Date
Daniel Friesen 855c0cc25e Add transform-es2015-function-name to the react-native babel preset. Fixes #6716
Summary:Stateless function components (at least those using arrow functions) are not assigned names when this transform is omitted.

Rebased against master and kept the original author from #6717

cc martinbigio bestander
Closes https://github.com/facebook/react-native/pull/6794

Differential Revision: D3133791

Pulled By: mkonicek

fb-gh-sync-id: bb7790ad17d1520da5ab95580548d29d0c0f397d
fbshipit-source-id: bb7790ad17d1520da5ab95580548d29d0c0f397d
2016-04-13 07:41:26 -07:00
Janic Duplessis c61100d0ce Fix HMR on Windows
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 https://github.com/facebook/react-native/pull/6678

Differential Revision: D3138379

fb-gh-sync-id: f27cd2fa21f95954685c8c6916d820f41bc187be
fbshipit-source-id: f27cd2fa21f95954685c8c6916d820f41bc187be
2016-04-05 01:13:18 -07:00
Martin Bigio 4133de04d7 Use full path for react-native on HMR config
Summary:Fixes https://github.com/facebook/react-native/issues/6731
Closes https://github.com/facebook/react-native/pull/6748

Differential Revision: D3126410

Pulled By: martinbigio

fb-gh-sync-id: fc462ec82e72914d13341a4543212c017bd3838c
fbshipit-source-id: fc462ec82e72914d13341a4543212c017bd3838c
2016-04-01 08:08:27 -07:00
Janic Duplessis bc54a45542 Revert strict mode in transform-es2015-modules-commonjs
Summary:See discussion here https://github.com/facebook/react-native/pull/5796#issuecomment-202002658

**Test plan (required)**
Change the babel-preset-react-native dependency to `"babel-preset-react-native": "file:./babel-preset",` so it uses the local babel-preset instead of the one from npm.
```
./packager/packager.sh --reset-cache
```
open `http://localhost:8081/Examples/UIExplorer/UIExplorerApp.android.bundle?platform=android&dev=true&hot=false&minify=false` and there should not be any added 'strict mode'.
Closes https://github.com/facebook/react-native/pull/6686

Reviewed By: mkonicek

Differential Revision: D3103122

Pulled By: bestander

fb-gh-sync-id: 85658ee01bb73f13dacb2b6a48ab121324c13118
fbshipit-source-id: 85658ee01bb73f13dacb2b6a48ab121324c13118
2016-03-29 07:26:22 -07:00
Martin Bigio 51b5423fd5 Use `react-native` instead of `React` on hmr config
Summary:Check https://github.com/facebook/react-native/issues/6640 for details
Closes https://github.com/facebook/react-native/pull/6696

Differential Revision: D3109128

fb-gh-sync-id: b80ff44f0dbc063870dc1dc7de9bf3c814ac9a12
fbshipit-source-id: b80ff44f0dbc063870dc1dc7de9bf3c814ac9a12
2016-03-29 06:35:21 -07:00
Martín Bigio 3a1634ec7b Fix HMR preset config path
Reviewed By: davidaurelio

Differential Revision: D3077935

fb-gh-sync-id: b1e89f9e34a505f0611cf8991afe4224d5a6f05d
shipit-source-id: b1e89f9e34a505f0611cf8991afe4224d5a6f05d
2016-03-21 15:45:27 -07:00
Janic Duplessis 36893ecfa0 Enable strict mode for transform-es2015-modules-commonjs
Summary:Since #5422 react-native works with strict mode modules but the transform was not updated since Facebook has some non strict mode compatible internal modules. Now that #5214 has landed and it is easy to change the babel config I think we should enable it by default to make es2015 modules spec compliant.

Someone at Facebook will have to make the internal changes necessary to disable strict mode modules for their projects that use non strict mode compatible modules by including a .babelrc file with
``` json
{
  "presets": [
    "react-native"
  ],
  "plugins": [
    ["transform-es2015-modules-commonjs", { "strict": false, "allowTopLevelThis": true }]
  ]
}
```
before merging this.

We might also want to mention this in the breaking change section for the next release.
Closes https://github.com/facebook/react-native/pull/5796

Differential Revision: D3075802

fb-gh-sync-id: e807b67401107e1e944db38453e254025ce0a6c7
shipit-source-id: e807b67401107e1e944db38453e254025ce0a6c7
2016-03-21 06:24:31 -07:00
David Aurelio a72c2950d6 babel-preset-react-native: Make sure that `react-transform-hmr/lib/index.js` is included correctly for every module in the bundle
Summary:This imports `react-transform-hmr/lib/index.js` with a relative path from every module, to make sure we don’t rely on the current (broken) behaviour.

It works now, because:
- the dependency is added by a transform
- we extract dependencies before transforming
- we include `react-transform-hmr/lib/index.js` manually
- packager incorrectly names modules by the name of their package (i.e. packages with multiple versions overwrite each other)

This blocks transforming before extracting dependencies, switching to numeric module IDs, and unbundling/random access bundles.

Reviewed By: bestander

Differential Revision: D2994024

fb-gh-sync-id: 23c56397b768775ff56e3d6924f50a9e39e8ce8c
shipit-source-id: 23c56397b768775ff56e3d6924f50a9e39e8ce8c
2016-03-01 03:22:32 -08:00
Adam Miskiewicz 194092e729 Adding 'transform-symbol-member' transform to preset.
Summary:
Turns out, even after discussion that was had in https://github.com/facebook/react-native/pull/5294#issuecomment-174397103, we really do need this transform.

I've just included it in the preset...let me know if you all would rather publish to npm.

The actual reason why this is necessary is because in the latest sync from FB, fbjs was updated to use the `Symbol.iterator` express in it's isEmpty function: 064a484e18

We use this in RN in the ListView...and this change (once #5084 is merged) will cause ListView to break on older JSC context's.

This resolves that, and is probably something we should have had all along.
Closes https://github.com/facebook/react-native/pull/5824

Reviewed By: svcscm

Differential Revision: D2913315

Pulled By: vjeux

fb-gh-sync-id: abaf484a9431b3111e8118d01db8d2c0d2dd73ca
shipit-source-id: abaf484a9431b3111e8118d01db8d2c0d2dd73ca
2016-02-08 15:01:36 -08:00
Adam Miskiewicz e6cb02d61a Use "babel-preset-react-native"
Summary:
Rather than specifying Babel plugins in the `.babelrc` packaged with react-native, leverage a Babel preset to define the plugins (https://github.com/exponentjs/babel-preset-react-native).

This allows for a much better user experience for those who want (or need) to override options in their project's `.babelrc`.

Prior to this PR, if a user wanted to use a custom babel-plugin (or a custom set of babel plugins), they'd have either 1) manually override the `.babelrc` in the react-packager directory (or fork RN), or 2) specify a custom transformer to use when running the packager that loaded their own `.babelrc`. Note - the custom transformer was necessary because without it, RN's `.babelrc` options would supersede the options defined in the project's `.babelrc`...potentially causing issues with plugin ordering.

This PR makes the transformer check for the existence of a project-level `.babelrc`, and if it it's there, it _doesn't_ use the react-native `.babelrc`. This prevents any oddities with Babel plug
Closes https://github.com/facebook/react-native/pull/5214

Reviewed By: davidaurelio

Differential Revision: D2881814

Pulled By: martinbigio

fb-gh-sync-id: 4168144b7a365fae62bbeed094d8a03a48b4798c
2016-02-03 08:15:32 -08:00