rescript-lang / rescript-lang/rescript
Dependency analysis
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
Currently it is very hard to analyze where a dependency will be imported, for example:
type t
@module("dep") external make: unit => t = "make"
let timeMake = () => {
Js.Console.timeStart("make")
let t = make()
Js.Console.timeEnd("make")
t
}
A consuming module may import dep directly, or it may not depending on which function is used and if there is an interface file.
If dependencies, devDependencies, and peerDependencies are not properly set this may become a problem for certain package manager setups. A small change could end up causing a runtime error. It could be particularly insidious if it is a rarely used or lazy loaded binding.
Due to the different dependency types often being misunderstood and the complexity of analysis, I believe ReScript should have the ability to check package.json dependencies for correctness.
I've had Claude create an example project here that failures when using pnpm style linking. The main branch uses ReScript 12 and ESM, but there is also a rescript-11-cjs branch for reference.
BTW it could be helpful if this feature was implemented in a way that we could integrate with Knip as a plugin
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
Beginnen Sie mit dem verlinkten res-dep-issue-Beispiel, vergleichen Sie dessen main- und rescript-11-cjs-Branches und reproduzieren Sie den pnpm-Style-Verknüpfungsfehler. Lesen Sie anschließend die Einstiegspunkte der Abhängigkeitsanalyse des Compilers und ermitteln Sie, wie Abhängigkeiten in package.json geprüft werden sollten. Als erledigt gilt die Aufgabe, wenn die vorgeschlagene Analyse unzuverlässige Abhängigkeiten zuverlässig erkennt und einen klaren Integrationspfad für Knip bietet.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript
- Bereich
- build-system, compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100