We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xmake v2.9.8+20250205
Windows 11 23H2 Version 22631.5039
我的xmake使用msys2安装,环境变量路径设置为{MSYS2_PATH}\mingw64\bin,可以通过终端直接执行xmake。 使用vscode执行XMAKE命令,提示“spawn xmake ENOENT” 经排查,终端执行的命令实际为{MSYS2_PATH}\mingw64\bin\xmake.cmd脚本,而非直接执行可执行文件 而根据https://stackoverflow.com/questions/78420489/error-when-running-npm-script-with-yarn-err-spawn-einval:需要注意的是,对于使用 child_process.spawn 和 child_process.spawnSync 的 Windows 用户来说,存在一个重大变更。如果 .bat 或 .cmd 文件传递给 child_process.spawn 和 child_process.spawnSync 时未设置 shell 选项,Node.js 现在会报错 EINVAL 。如果 spawn/spawnSync 的输入经过清理,用户现在可以传递 { shell: true } 作为选项,以防止 EINVALs 错误的发生。 就个人而言,此次将"xmake.executable"配置为{MSYS2_PATH}\mingw64\share\xmake\xmake.exe,解决了本人的这一问题。 因此,由于nodejs安全更新,引发了一个坑,从2024年起,windoes的cmd文件无法被识别,导致同一个指令,在终端可以成功执行,但是xmake-vscode无法识别,这很容易引发困扰。
在xmake-vscode中发现这部分指令是由process.runv执行的。我不太熟悉这部分内容,需要合理配置或使用其他命令,使得xmake-vscode能够执行cmd命令,以确保若终端可以执行xmake,则xmake-vscode同样可以识别。 如果无法识别cmd命令符合预期,则可能需要在文档中进行说明。
target("foo") set_kind("binary") add_files("src/*.c")
Error: spawn xmake ENOENT
The text was updated successfully, but these errors were encountered:
暂时没环境测试这个,你可以直接调下代码 提个 pr 过来,判断当前是 msys2 shell 下,并且后缀是 .cmd/.bat,设置 shell = true 去执行
xmake-vscode/src/process.ts
Line 106 in 52b8071
Sorry, something went wrong.
No branches or pull requests
Xmake 版本
xmake v2.9.8+20250205
操作系统版本和架构
Windows 11 23H2 Version 22631.5039
描述问题
我的xmake使用msys2安装,环境变量路径设置为{MSYS2_PATH}\mingw64\bin,可以通过终端直接执行xmake。
使用vscode执行XMAKE命令,提示“spawn xmake ENOENT”
经排查,终端执行的命令实际为{MSYS2_PATH}\mingw64\bin\xmake.cmd脚本,而非直接执行可执行文件
而根据https://stackoverflow.com/questions/78420489/error-when-running-npm-script-with-yarn-err-spawn-einval:需要注意的是,对于使用 child_process.spawn 和 child_process.spawnSync 的 Windows 用户来说,存在一个重大变更。如果 .bat 或 .cmd 文件传递给 child_process.spawn 和 child_process.spawnSync 时未设置 shell 选项,Node.js 现在会报错 EINVAL 。如果 spawn/spawnSync 的输入经过清理,用户现在可以传递 { shell: true } 作为选项,以防止 EINVALs 错误的发生。
就个人而言,此次将"xmake.executable"配置为{MSYS2_PATH}\mingw64\share\xmake\xmake.exe,解决了本人的这一问题。
因此,由于nodejs安全更新,引发了一个坑,从2024年起,windoes的cmd文件无法被识别,导致同一个指令,在终端可以成功执行,但是xmake-vscode无法识别,这很容易引发困扰。
期待的结果
在xmake-vscode中发现这部分指令是由process.runv执行的。我不太熟悉这部分内容,需要合理配置或使用其他命令,使得xmake-vscode能够执行cmd命令,以确保若终端可以执行xmake,则xmake-vscode同样可以识别。
如果无法识别cmd命令符合预期,则可能需要在文档中进行说明。
工程配置
target("foo")
set_kind("binary")
add_files("src/*.c")
附加信息和错误日志
Error: spawn xmake ENOENT
The text was updated successfully, but these errors were encountered: