1
我在安裝Node.js的Inno Setup中編寫安裝程序,提取包含所有節點項目文件的zip文件,然後需要使用npm install
安裝節點應用程序。如何從Inno Setup調用「npm install」?
手動過程包括打開一個命令,瀏覽到這些文件的目錄(在我的情況中提取與{app}
文件夾設置對應其程序文件夾),然後運行確切命令行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
使用此命令行參數,並嘗試多種組合方式,但沒有任何工作 - 執行失敗。我得到的錯誤始終是The system cannot find the file specified.
。
如何在接收結果/退出代碼時執行此節點安裝?
假設'npm'是可執行文件,你應該寫類似'Exec的( '故宮', '安裝--quiet',ExpandConstant( '{}應用'),SW_SHOWNORMAL,ewWaitUntilTerminated,結果) ',其中'npm'預計可以在'{app}'文件夾或例如路徑由'PATH'環境變量註冊。 – TLama
@TLama'npm'不是可執行文件,這就是爲什麼我無法工作。至少它不是這個文件夾中的可執行文件。我對「Node.js」和「npm」一無所知,但我試圖用Inno Setup複製命令行中的內容。 –
請注意,命令提示符使用Windows Shell,因此它不僅可以運行可執行文件(例如批處理文件)。話雖如此,更接近的是Inno Setup中的ShellExec功能。當然,我可以告訴,如果'npm'不是可執行文件,使用'ShellExec'函數。 – TLama