rescript-lang / rescript-lang/rescript
Provided `jsx.module` in root `rescript.json` does not work
Nobody has claimed this yet.
- Dominant language
- OCaml
- Stars
- 7.5k
- Forks
- 485
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 55
Description
In monorepo, I define this in the root rescript.json:
"jsx": {
"version": 4,
"module": "JSXExt"
}
It works for local packages, but it fails to compile with the following errors from @rescript/react dependency:
Log
❯ Building ReScript packages: $ pnpm rescript build [@ Draftist]
[1/3] 🧹 Cleaned previous build due to compiler update
[1/3] 🧹 Cleaned 0/0 in 0.43s
[2/3] 🧱 Parsed 873 source files in 5.05s
[3/3] ❌ Compiled 156 modules in 0.73s
We've found a bug for you!
/Users/Alex/Dev/Draftist/node_modules/@rescript/react/src/RescriptReactErrorBoundary.res:40:1-44:36
38 │ `)
39 │
40 │ @react.component @val
41 │ external make: (
42 │ ~children: React.element,
43 │ ~fallback: params<'error> => React.element,
44 │ ) => React.element = "ErrorBoundary"
45 │
The module or file JSXExt can't be found.
- If it's a third-party dependency:
- Did you add it to the "dependencies" or "dev-dependencies" in rescript.json?
- Did you include the file's directory to the "sources" in rescript.json?
We've found a bug for you!
/Users/Alex/Dev/Draftist/node_modules/@rescript/react/src/RescriptReactErrorBoundary.resi:13:1-14:97
11 │ }
12 │
13 │ @react.component
14 │ let make: (~children: React.element, ~fallback: params<'error> => React
│ .element) => React.element
15 │
The module or file JSXExt can't be found.
- If it's a third-party dependency:
- Did you add it to the "dependencies" or "dev-dependencies" in rescript.json?
- Did you include the file's directory to the "sources" in rescript.json?
Setting jsx config in package's rescript.json does not work - compiler ignores it.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with the root and package rescript.json files, pnpm rescript build, and the @rescript/react files RescriptReactErrorBoundary.res and .resi. Trace how jsx.module is read and propagated in the compiler; done means the root setting works for dependency sources and package-level configuration is handled consistently without the JSXExt errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100