Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent Babel registration from transforming plugins with arbitrary config #39429

Closed
wants to merge 1 commit into from

Conversation

robhogan
Copy link
Contributor

Summary:
X-link: facebook/metro#1082

Using require after const registerFn = require('babel/register') but before registerFn(config) causes Babel to transform required code with the default configuration (ie, using a nearby babel.config.js, if available).

This was causing the Babel plugins loaded by metro-babel-register to be (unnecessarily) transformed according to babel.config.js, which actually fails if the plugins/presets referenced in babel.config.js themselves require transformation.

This ensures no code is loaded in between registering Babel as a side effect of requiring Babel register, and replacing that hook with something explicitly configured.

React Native

Changelog: [Internal]

Metro

* **[Fix]:** `metro-babel-register` prevent arbitrary transformation of Babel plugins during registration setup

Differential Revision: D49238671

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner labels Sep 13, 2023
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D49238671

robhogan added a commit to robhogan/react-native that referenced this pull request Sep 13, 2023
…onfig (facebook#39429)

Summary:

X-link: facebook/metro#1082

Using `require` after `const registerFn = require('babel/register')` but before `registerFn(config)` causes Babel to transform required code with the default configuration (ie, using a nearby `babel.config.js`, if available).

This was causing the Babel plugins loaded by `metro-babel-register` to be (unnecessarily) transformed according to `babel.config.js`, which actually fails if the plugins/presets referenced in `babel.config.js` themselves require transformation.

This ensures no code is loaded in between registering Babel as a side effect of requiring Babel register, and replacing that hook with something explicitly configured.

## React Native
Changelog: [Internal]

## Metro
```
* **[Fix]:** `metro-babel-register` prevent arbitrary transformation of Babel plugins during registration setup
```

Differential Revision: D49238671
robhogan added a commit to robhogan/metro that referenced this pull request Sep 13, 2023
…onfig (facebook#1082)

Summary:
X-link: facebook/react-native#39429


Using `require` after `const registerFn = require('babel/register')` but before `registerFn(config)` causes Babel to transform required code with the default configuration (ie, using a nearby `babel.config.js`, if available).

This was causing the Babel plugins loaded by `metro-babel-register` to be (unnecessarily) transformed according to `babel.config.js`, which actually fails if the plugins/presets referenced in `babel.config.js` themselves require transformation.

This ensures no code is loaded in between registering Babel as a side effect of requiring Babel register, and replacing that hook with something explicitly configured.

## React Native
Changelog: [Internal]

## Metro
```
* **[Fix]:** `metro-babel-register` prevent arbitrary transformation of Babel plugins during registration setup
```

Differential Revision: D49238671
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D49238671

@github-actions
Copy link

github-actions bot commented Sep 13, 2023

Warnings
⚠️ One hour and a half have passed and the E2E jobs haven't finished yet.

Generated by 🚫 dangerJS against a86bbd5

…onfig

Summary:
Using `require` after `const registerFn = require('babel/register')` but before `registerFn(config)` causes Babel to transform required code with the default configuration (ie, using a nearby `babel.config.js`, if available).

This was causing the Babel plugins loaded by `metro-babel-register` to be (unnecessarily) transformed according to `babel.config.js`, which actually fails if the plugins/presets referenced in `babel.config.js` themselves require transformation.

This ensures no code is loaded in between registering Babel as a side effect of requiring Babel register, and replacing that hook with something explicitly configured.

## React Native
Changelog: [Internal]

## Metro
```
* **[Fix]:** `metro-babel-register` prevent arbitrary transformation of Babel plugins during registration setup
```

Reviewed By: dmytrorykun

Differential Revision: D49238671
@facebook-github-bot
Copy link
Contributor

This pull request was exported from Phabricator. Differential Revision: D49238671

facebook-github-bot pushed a commit to facebook/metro that referenced this pull request Sep 14, 2023
…onfig

Summary:
X-link: facebook/react-native#39429

Using `require` after `const registerFn = require('babel/register')` but before `registerFn(config)` causes Babel to transform required code with the default configuration (ie, using a nearby `babel.config.js`, if available).

This was causing the Babel plugins loaded by `metro-babel-register` to be (unnecessarily) transformed according to `babel.config.js`, which actually fails if the plugins/presets referenced in `babel.config.js` themselves require transformation.

This ensures no code is loaded in between registering Babel as a side effect of requiring Babel register, and replacing that hook with something explicitly configured.

## React Native
Changelog: [Internal]

## Metro
```
* **[Fix]:** `metro-babel-register` prevent arbitrary transformation of Babel plugins during registration setup
```

Reviewed By: dmytrorykun

Differential Revision: D49238671

fbshipit-source-id: 52a55b1b5dbd127171558c056f16ab04e8fa8232
@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Sep 14, 2023
@facebook-github-bot
Copy link
Contributor

This pull request has been merged in cda1cf9.

@robhogan robhogan deleted the export-D49238671 branch September 14, 2023 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged This PR has been merged. p: Facebook Partner: Facebook Partner
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants