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

missing @babel/plugin-transform-react-jsx-self after run eject #6679

Closed
zWingz opened this issue Mar 19, 2019 · 6 comments
Closed

missing @babel/plugin-transform-react-jsx-self after run eject #6679

zWingz opened this issue Mar 19, 2019 · 6 comments

Comments

@zWingz
Copy link

zWingz commented Mar 19, 2019

Is this a bug report?

bug

Did you try recovering your dependencies?

i run yarn add @babel/plugin-transform-react-jsx-self -D and fixed it

Environment

version 2.1.8

Steps to Reproduce

(Write your steps here:)

  1. create-react-app test-rc --typescript
  2. yarn eject
  3. yarn start

Expected Behavior

no error

Actual Behavior

image

@tanzhiling
Copy link

image
So do I,How to solve it?

@heyimalex
Copy link
Contributor

Thanks! I was able to repro with the commands given. I'm taking a look at it now.

npx create-react-app issue_6679 --typescript
cd issue_6679
yarn run eject
yarn run start

@iansu
Copy link
Contributor

iansu commented Mar 19, 2019

This seems to be an intermittent issue. We see this every once in a while on CI and then it disappears. I was trying to reproduce it locally last week without success. If anyone can reproduce it consistently that would be a great first step.

@abel1105
Copy link

abel1105 commented Apr 4, 2019

Running to the same problem here.
After struggling with the whole afternoon, I came out with something that may be useful?

  1. It seems to only happen on Yarn, not with NPM.
    • npx create-react-app my-app --use-npm works great after eject.
  2. After npm pack and test it with the react-script.tgz file, everything works great on my local create-react-app env.
  3. I try to figure out what happens inside node_modules, so I follow Build fails after eject: Cannot find module '@babel/plugin-transform-react-jsx' #6099 instruction about delete whole node_module and reinstall with yarn again. The image below is the compare directory result between the reinstall one(left) and the broken one(right), and the only different is inside the node_modules > babel-preset-react-app > node_modules > @babel.

螢幕快照 2019-04-04 下午1 59 33

螢幕快照 2019-04-04 下午3 50 16

It seems like after running npx create-react-app my-app, the node_modules has babel-preset-react-app inside, and when running yarn eject, although react-script removed from package.json and babel-preset-react-app replaced it, Yarn didn't resolve babel-preset-react-app again.

I try to fix the broken one with yarn remove babel-preset-react-app and yarn add babel-preset-react-app and it works. Maybe can add some script to clean up the babel-preset-react-app before or after yarn install, and it will be fixed.

console.log(cyan('Running yarn...'));
spawnSync('yarnpkg', ['--cwd', process.cwd()], { stdio: 'inherit' });

iansu added a commit that referenced this issue Apr 4, 2019
… suite (#6757)

This is a temporary fix to get our test suites passing so we can finish work on the 3.0 release. We still need to find and fix the root cause of this issue: #6679. This workaround should be removed once that's fixed.
@heyimalex
Copy link
Contributor

@abel1105 Really good detective work! Thank you so much.

I don't have a solution, but I can consistently reproduce this. Roughly here's what's up:

node_modules after npx create-react-app issue_6679 --typescript.

@babel/plugin-transform-react-jsx-self/
@babel/preset-react/
babel-preset-react-app/
babel-preset-react-app/node_modules/@babel/preset-react/

node_modules after yarn run eject. Here's where we're getting the error. If you run yarn why @babel/plugin-transform-react-jsx-self it will tell you that it's installed because @babel/preset-react depends on it. However, that package isn't resolvable from the nested @babel/preset-react in babel-preset-react-app/node_modules just because of how module resolution works.

- @babel/plugin-transform-react-jsx-self/
@babel/preset-react/
+ @babel/preset-react/node_modules/@babel/plugin-transform-react-jsx-self/
babel-preset-react-app/
babel-preset-react-app/node_modules/@babel/preset-react/

node_modules after rm -rf node_modules && rm yarn.lock && yarn. Everything works again.

@babel/preset-react/
@babel/preset-react/node_modules/@babel/plugin-transform-react-jsx-self/
babel-preset-react-app/
- babel-preset-react-app/node_modules/@babel/preset-react/

Not sure what the fix is, or even how to search for this issue in the yarn issue tracker. But at least we have a handle on why it's happening.

@heyimalex
Copy link
Contributor

Closing in favor of #6099

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants