rescript-lang / rescript-lang/rescript

Provided `jsx.module` in root `rescript.json` does not work

Aperta
#8,468 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
OCaml
Stelle
7.5k
Fork
485
Merge medio
1g 2h
PR unite (30g)
55

Descrizione

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.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il problema con i file rescript.json di root e package, pnpm rescript build e i file di @rescript/react RescriptReactErrorBoundary.res e .resi. Traccia come jsx.module viene letto e propagato nel compilatore; il lavoro è completato quando l'impostazione root funziona per i sorgenti delle dipendenze e la configurazione a livello di package viene gestita in modo coerente senza gli errori JSXExt.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript
Ambito
compilers
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.