-
-
Notifications
You must be signed in to change notification settings - Fork 27k
CRA2 doesn't work with reflect-metadata package #6388
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
Comments
This issue has been automatically marked as stale because it has not had any recent activity. It will be closed in 5 days if no further activity occurs. |
Are there any plans regarding this issue? I understand that there might not be an easy fix becuase of how babel compiles typescript. However, there are few nice libraries (ex. |
I think this would need to be addressed in Babel. Can you find or create an issue there and link to it here? |
@iansu, here you go babel/babel#9681. |
Any likelihood of getting babel-plugin-transform-typescript-metadata added? It seems like a sensible default if Typescript is used anywhere, since a lot of libraries use the type metadata. |
That might be possible. It depends how mature that plugin is and what kind of impact it has on build performance. cc @ianschmitz @mrmckeb |
Can anyone confirm the stability of the metadata proposal? What stage is it in? Last time I checked I seem to remember it not having been proposed yet as they were waiting for decorators to be later stage? We typically don't support early stage proposals in CRA as they are too volatile. For example the decorators proposal changed drastically during the first couple stages. |
@iainbeeston can we config babel and eslint in CRA?In this way, the responsibility for maintaining the plugin of babel can be given to the user. |
Is there any workaround for this to get any dependency injection library to run? |
@Obiwarn You can use a package like https://github.com/arackaf/customize-cra, which allows you to load extra babel plugins without ejectting cra. You can then include the babel-plugin-transform-typescript-metadata plugin |
@rmoedt I installed both and tried
But tsyringe still throws |
@Obiwarn I was running into the same issue with CRA x TSyringe. I didn't try
|
@kmannislands Thank you. I tried it but now, in the classes I use mobx-decorators I get:
|
@Obiwarn You need to install and import |
@elderapo argh....forgot the import. Thank you! Now it works! |
Now with CRA 4.0 craco breaks, and I don't know if they gonna fix that, after all craco is a big hack, and not a real fix for the main issue that we can't configure babel, or extract metadata, and exporting metadata is a must now days. We have a dependency library that we use in our projects with a |
I installed craco today and used the configuration from @kmannislands and it worked ❤️ |
It worked but I had to add Is there anyway to import it just once in |
Does anyone know how to handle the issue with transpilation of es6 syntax with babel? When I try to use tsyringe with craco, I run into the problem when using autoinjection |
edit tsconfig.json, change "target" value from "es5" to "es6" or more |
Is this a bug report?
Yes
Did you try recovering your dependencies?
No
Which terms did you search for in User Guide?
None
Environment
Steps to Reproduce
Just follow the steps from the
Reproducible Demo
part and open console in browser.Expected Behavior
Browsers console should print
someProperty type: Number
.Actual Behavior
It prints
couldn't get the type :(
.Reproducible Demo
git clone git@github.com:elderapo/cra2-reflect-metadata-bug.git cd cra2-reflect-metadata-bug yarn yarn start
The problem
I think the problem is that babel completely strips out TS types before compilation process which makes it impossible for
reflect-metadata
package to do its work.The text was updated successfully, but these errors were encountered: