rescript-lang / rescript-lang/rescript

ESM default imports when using @scope

Offen
#8,335 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

Playground: https://rescript-lang.org/try?version=v12.0.0-beta.12&module=esmodule&code=LYewJgrgNgpgBAWXARjgXjgbwFBzgFwE8AHefXOAAVElgAoAiG5BgSjhgA98YAnAOwCGUAgC4C6OAzAwAZoOj4GFSgGcY-MFVUBjEKUac2HbnyEjZ-cXXwAaOAEt++dmgB8cCPwf5JDS8p4sL6WkpY29gD6rNgAvtjYNNDwSGAATJI4eNTgyYw0acZqegaMMvKKDPYMRqzsXDwCwnCW4k6+7p7eHVIBFMEt-GH8cdhAA

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

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.