Skip to content

Commit 5852e5b

Browse files
committed
Actual fix for Windows path issue
1 parent 82d5195 commit 5852e5b

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
macos-14, # ARM
2727
ubuntu-latest, # x64
2828
buildjet-2vcpu-ubuntu-2204-arm, # ARM
29-
# windows-latest, # deactivated for now as there is still a Windows issue
29+
windows-latest,
3030
]
3131

3232
runs-on: ${{matrix.os}}

src/RescriptVersions.res

+8-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,14 @@ let promptVersions = async () => {
6666
let installVersions = async ({rescriptVersion, rescriptCoreVersion}) => {
6767
let packageManager = PackageManagers.getActivePackageManager()
6868
let packages = [`rescript@${rescriptVersion}`, `@rescript/core@${rescriptCoreVersion}`]
69-
let command = `${packageManager} add ${packages->Array.join(" ")}`
69+
70+
// #58: Windows: packageManager may be something like
71+
// "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js".
72+
//
73+
// Therefore, packageManager needs to be in quotes, and we need to prepend "node "
74+
// if packageManager points to a JS file, otherwise the invocation will hang.
75+
let maybeNode = packageManager->String.endsWith("js") ? "node " : ""
76+
let command = `${maybeNode}"${packageManager}" add ${packages->Array.join(" ")}`
7077

7178
let _ = await Node.Promisified.ChildProcess.exec(command)
7279
}

0 commit comments

Comments
 (0)