rescript-lang / rescript-lang/rescript
ESM default imports when using @scope
オープン
まだ誰も着手していません。
- 主要言語
- OCaml
- スター
- 7.5k
- フォーク
- 485
- 平均マージ
- 1日 2時間
- マージ済み PR(30日)
- 55
説明
module Mod1 = {
type t
@module("mod1") external t: t = "default"
@send @scope("x") external fn: (t, int) => unit = "fn"
let fn = fn(t, _)
}
module Mod2 = {
@module("mod2") @scope(("default", "x")) external fn: int => unit = "fn"
let fn = fn
}
Using @scope results in a namespace import instead of a default import:
import Mod1 from "mod1";
import * as Mod2 from "mod2";
This shouldn't effect modern tree shakers, but I've noticed tooling, like linters, can be less effective.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
リンクされた Playground の例から始め、@scope が使用されている場合の Mod1 と Mod2 の生成された import を比較します。スコープ付きモジュールの import を処理するコンパイラーパスを追跡し、影響を受ける default-import のケースで namespace import を出力するのではなく default import が維持されることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, ocaml
- 領域
- compilers
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 52/100