Browse files

Default enableBabelRCLookup (recursive) to false

This is a breaking change that tells Metro to look at only the project's .babelrc file. Previously it would look at .babelrc files under node_modules and would run into issues because it didn't have the version of Babel nor the plugins/presets that `node_modules/randompackage/.babelrc` wanted. So as a workaround, people would write a postinstall step that deletes `node_modules/**/.babelrc`, which worked well. This flag (`getEnableBabelRCLookup = false`) has the same effect and hopefully fixes one source of cryptic bugs people run into.

To use the old behavior, create a config file named `rn-cli.config.js` with:
module.exports = {
  getEnableBabelRCLookup() {
    return true;

Go under node_modules, modify a used module to have a dummy .babelrc (`{"plugins": ["dummy"]}`) and ensure the JS bundle still loads.
Closes #15860

Differential Revision: D5798264

Pulled By: jeanlauliac

fbshipit-source-id: ce368b1d5671cc6c6261cbe3c39e61c9401fe37a
  • Loading branch information...
ide authored and facebook-github-bot committed Sep 11, 2017
1 parent c55fae1 commit 023ac57337b351959d443133c3c09607c4ffc800
Showing with 1 addition and 1 deletion.
  1. +1 −1 local-cli/util/Config.js
@@ -189,7 +189,7 @@ const Config = {
extraNodeModules: Object.create(null),
getAssetExts: () => [],
getBlacklistRE: () => blacklist(),
getEnableBabelRCLookup: () => true,

This comment has been minimized.

Show comment
Hide comment
getEnableBabelRCLookup: () => false,
getPlatforms: () => [],
getPolyfillModuleNames: () => [],
getProjectRoots: () => {

0 comments on commit 023ac57

Please sign in to comment.