Comments (4)
It's because you have typescript plugin before babel plugin. The lingui macro is looking for Trans
JSX nodes in the AST, however after typescript plugin they are already transpiled to js and could not be matched and picked up by macro.
There are few possible solutiuons:
- drop typescript and use only babel (for typescript transpiling as well)
- If dropping typescript is not possible (for example because of using legacy decorators + emitDecoratorMetdata?) you can set
"jsx": "preserve",
intsconfig.json
so JSX statements would be passed as-is to the babel. - Consider moving to SWC which is not only faster, but also supports
emitDecoratorMetdata
and could be used as drop-in replacement for tsc
from js-lingui.
Thanks for the quick reply!
I see this makes sense. Indeed using "jsx": "preserve"
and adding the @babel/preset-react"
preset made it work.
Should there be anything in the doc about this? There is a Typescript section but it reads:
You should not need to do anything to get type support working.
from js-lingui.
You should not need to do anything to get type support working.
type support
For macro support docs says that you need either babel or SWC compiler. And this is quite unusual to have typescript and babel together in 2024, since babel can transpile the typescript code since long ago, and typescript could be used separately only to check types (not for transpiling)
from js-lingui.
Here is where I was coming from, in case it makes the use-case clearer.
My starting point was a pure Typescript project (no Babel or SWC whatsoever). What I'm doing is closer to a react component library than to a website, and I'm happy without any transpilation. I then simply followed the React project instructions to install lingui
.
Thanks again for the help!
from js-lingui.
Related Issues (20)
- [SIMPLE PATCH READY] Simple hack for compatibility with Turbopack (NextJS) HOT 2
- ERROR in ./node_modules/@lingui/macro/dist/index.mjs 347:24 Module parse failed HOT 7
- a special message cant compile. HOT 1
- `lingui` can be null HOT 2
- Compile messages to JSON HOT 5
- Support Gatsby HOT 2
- Cannot find type definition file for './node_modules/@lingui/macro/global'. HOT 2
- Next.js tutorial HOT 3
- The `catalogsMergePath` option is missing in the documentation
- Support backup messages HOT 3
- Extract removes manual comments from po files HOT 1
- React Fragment (`<>`) inside `<Plural>` is not working HOT 5
- Impossible to use with Vite? HOT 1
- definePlural macro HOT 4
- rspack now supports wasm plugins, lingui integration example could be improved HOT 3
- Escaped curly-braces doesn't preserve in development mode HOT 1
- <Trans> breaks React JSX semantics with regards to booleans HOT 3
- Consider renaming of the macro components HOT 3
- selectOrdinal error HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from js-lingui.