Windows: Start Build uses an invalid .cmd path after findBinary refactor
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 68/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- node.js, typescript
- Bereich
- build-system, devtools
Rechercherichtung
Beginne damit, findRescriptBinary() und runBuildWatcherUsingValidBuildPath() zu lesen, und verfolge dann, wie der zurückgegebene ReScript-Pfad unter Windows an childProcess.exec übergeben wird. Stelle sicher, dass der Watcher den vorhandenen node_modules/.bin/rescript.cmd-Launcher auflöst, ohne die anderen Verwendungen von findRescriptBinary() zu beeinträchtigen, und bestätige, dass Start Build nicht mehr sofort beendet wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
Starting a build from the language server fails on Windows because the path returned by findRescriptBinary() no longer matches what runBuildWatcherUsingValidBuildPath() expects.
The build watcher exits immediately with:
Build watcher exited with code 1, signal null
As a result, features that depend on the build watcher (such as fresh type information) do not work until a separate rescript watch process is started manually.
Environment
- OS: Windows 10
- Extension: 1.73.11
- ReScript: 12.3.0 (also reproduced on 12.0.0)
Investigation
In extension version 1.50.0, findRescriptBinary() searched for:
node_modules/.bin/rescript
runBuildWatcherUsingValidBuildPath() then executed:
childProcess.exec(`"${buildPath}".cmd ...`)
which correctly resolved to:
node_modules/.bin/rescript.cmd
The current implementation of findRescriptBinary() returns the package wrapper instead.
For ReScript 12:
node_modules/rescript/cli/rescript.js
For older ReScript versions (10, 11):
node_modules/rescript/rescript
However, runBuildWatcherUsingValidBuildPath() still appends .cmd:
".../node_modules/rescript/cli/rescript.js".cmd
or
".../node_modules/rescript/rescript".cmd
Neither of these files exists.
The actual Windows launcher generated by npm is still:
node_modules/.bin/rescript.cmd
Logs
Starting build watcher for ... (ReScript 12.3.0)
Running build watcher: ...\node_modules\rescript\cli\rescript.js watch
Build watcher exited with code 1, signal null
Possible fix
Since findRescriptBinary() is now also used for purposes other than starting the build watcher (for example, monorepo-related logic), changing it back to return node_modules/.bin/rescript may not be the best approach.
Instead, runBuildWatcherUsingValidBuildPath() could resolve the appropriate Windows launcher from the returned path before calling exec(), preserving the current responsibilities of findRescriptBinary() while restoring the expected Windows behavior.
Related
This appears to be related to issue #1181.
That issue reports that Start Build exits immediately while running rescript watch manually works correctly. My investigation points to the Windows launcher path being constructed from a different kind of path than the code expects.
- Vorherrschende Sprache
- ReScript
- Sterne
- 356
- Forks
- 63
- Ø Merge
- 11 Std. 29 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus rescript-lang/rescript-vscode
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
rescript-lang/rescript-vscode#1185 ·
-
Binary resolution fails on Windows with ERR_INVALID_URL_SCHEME when compiler-info.json is missingOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
rescript-lang/rescript-vscode#1184 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
rescript-lang/rescript-vscode#1192 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 45/100
rescript-lang/rescript-vscode#1182 · 1 Kommentar ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
rescript-lang/rescript-vscode#1175 ·
Alle Issues in rescript-lang/rescript-vscode
Ähnliche Issues
-
c: proposal p: go_router package team-ecosystem
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 60/100
flutter/flutter#194542 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
crossplane/cli#432 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Build: the CUDA backend fails without cuDNN instead of skipping the cuDNN shim (as the cuDF shim does)Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
beehive-lab/TornadoVM#1248 ·
Maintainer antworten meist innerhalb von 1 Tag
-
react, react-dom and lucide-react are runtime dependencies but the built code doesn’t use themEvtl. vergeben @duongynhi000005-oss hat das heute übernommen. Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100