gpt4 book ai didi

node.js - 如何从 Inno Setup 调用 "npm install"?

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:17 26 4
gpt4 key购买 nike

我正在 Inno Setup 中编写一个安装程序,它会安装 Node.js,提取包含所有 Node 项目文件的 zip 文件,然后需要使用 npm install 安装 Node 应用程序。

手动过程包括打开命令提示符,浏览到这些文件所在的目录(在我的例子中,提取到与 {app} 文件夹设置相对应的 Program Files 文件夹),然后运行确切的命令行 npm install --quiet。但是,在 Inno Setup 中执行此操作时,它失败了...

function InstallNodeApp: Integer;
var
C: String;
begin
C:= 'npm install --quiet';
if not Exec(C, '', ExpandConstant('{app}'), SW_SHOWNORMAL, ewWaitUntilTerminated, Result) then begin
Result:= -1;
end;
end;

我尝试过将 --quiet 放入参数中,并使用此命令行作为参数调用 cmd.exe 以及许多其他尝试组合,但没有任何效果 - 执行失败。我收到的错误始终是系统找不到指定的文件。

如何在接收结果/退出代码时执行此 Node 安装?

最佳答案

问题是我使用的是 Exec,但由于 npm 的性质,它需要使用 shell 命令。因此,正如 TLama 在评论中提到的那样,我使用了 ShellExec 并且一切正常。

function InstallNodeApp: Integer;
var
C, P, D: String;
begin
C:= 'npm';
P:= 'install --silent';
D:= ExpandConstant('{app}');
if not ShellExec('', C, P, D, SW_HIDE, ewWaitUntilTerminated, Result) then begin
Result:= -1;
end;
end;

关于node.js - 如何从 Inno Setup 调用 "npm install"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23419234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com