rescript-lang / rescript-lang/rescript
ESM default imports when using @scope
Offen
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- OCaml
- Sterne
- 7.5k
- Forks
- 485
- Ø Merge
- 1 T. 2 Std.
- Gemergte PRs (30 T.)
- 55
Beschreibung
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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem verknüpften Playground-Beispiel und vergleiche die generierten Importe für Mod1 und Mod2, wenn @scope verwendet wird. Verfolge den Compiler-Pfad, der Importe aus Scoped-Modulen verarbeitet, und überprüfe anschließend, dass die betroffenen Default-Import-Fälle Default-Imports beibehalten, statt Namespace-Imports auszugeben.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, ocaml
- Bereich
- compilers
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 52/100