🚇 The JavaScript bundler for React Native. https://facebook.github.io/metro
Go to file
James Ide 0f3d7117d4 Add an option to enable/disable .babelrc lookup
Summary:
By default, when Babel transforms a file, it looks for .babelrc in the file's directory and all parent directories until it finds a .babelrc file. This means that when Metro tries to transform `<PROJECT_ROOT>/node_modules/dep/mod.js`, it searches for `<PROJECT_ROOT>/node_modules/dep/.babelrc`. If that .babelrc actually exists, Babel will try to apply it.

In practice, this often causes problems because packages that include .babelrc often do so unintentionally -- they don't intend for the package consumer to look at that .babelrc file. One thing we've done a lot is `rm` all .babelrc files under node_modules -- this commit effectively achieves the same in a less destructive way by telling Babel not to look up .babelrc files. (To clarify, Metro will still apply the .babelrc file in the project root.)

Since the current behavior is to look at .babelrc files, this commit keeps that behavior for now. We'll consider overriding the default behavior (that is, making Babel not lookup .babelrc files) in the default configuration of Expo/RN projects. If this goes well and we empirically find that people are having a better time, we may want to consider flipping this option's default in Metro, so that Metro tells Babel not to look up .babelrc files by default.
Closes https://github.com/facebook/metro-bundler/pull/31

Differential Revision: D5469620

Pulled By: jeanlauliac

fbshipit-source-id: fe7a1042feafff843e1a6d8cc9487eb6ff8e8358
2017-07-24 13:43:26 -07:00
.github Initial repository structure. 2017-01-26 12:56:40 +00:00
flow-typed Backed out changeset db8638eebe2d 2017-06-14 09:53:06 -07:00
packages/metro-bundler Add an option to enable/disable .babelrc lookup 2017-07-24 13:43:26 -07:00
scripts fix support for node v4 2017-06-26 05:08:50 -07:00
.babelrc fix support for node v4 2017-06-26 05:08:50 -07:00
.eslintignore Initial repository structure. 2017-01-26 12:56:40 +00:00
.eslintrc Add prettier to metro-bundler, fixing code styling issues 2017-06-12 01:20:50 -07:00
.flowconfig Don’t ignore `/build/` in `node_modules` 2017-06-09 09:56:52 -07:00
.gitignore Add nested yarn.lock 2017-06-12 18:07:19 +01: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 Update README 2017-06-06 03:29:08 -07:00
appveyor.yml Initial repository structure. 2017-01-26 12:56:40 +00:00
circle.yml Revert "attempt at fixing yarn install in CircleCI" 2017-07-19 17:31:28 +01:00
lerna.json v0.10.0 2017-07-21 04:54:57 -07:00
package.json metro-bundler: fix test command 2017-07-19 10:21:08 -07:00
yarn.lock metro-bundler: upgrade jest to 20.1 2017-07-14 08:11:09 -07:00

README.md

metro-bundler

CircleCI Build Status npm version

🚇 The JavaScript bundler for React Native.

  • 🚅 Fast: We aim for sub-second reload cycles, fast startup and quick bundling speeds.
  • ⚖️ Scalable: Works with thousands of modules in a single application.
  • ⚛️ Integrated: Supports every React Native project out of the box.

This project was previously part of the react-native repository. In this smaller repository it is easier for the team working on Metro Bundler to respond to both issues and pull requests. See react-native#13976 for the initial announcement.