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

オープン
#8,468 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
javascript
領域
compilers

調査の方向性

root と package の rescript.json ファイル、pnpm rescript build、および @rescript/react のファイル RescriptReactErrorBoundary.res と .resi を使って失敗を再現します。コンパイラ内で jsx.module がどのように読み取られ、伝播されるかを追跡します。完了の条件は、依存関係のソースに対して root の設定が機能し、パッケージレベルの設定が一貫して処理され、JSXExt エラーが発生しないことです。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
OCaml
スター
7.5k
フォーク
485
平均マージ
1日 2時間
マージ済み PR(30日)
55

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

rescript-lang/rescript のほかの issue

rescript-lang/rescript の issue をすべて見る

似ている issue

Compilers の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。