我在執行 shell 腳本的打字稿中遇到了代碼問題。執行 shell 腳本的代碼部分如下所示:
const child = child_process.exec(command.script, (error: child_process.ExecException, stdout: string, stderr: string) => {
/* ... */
});
它作業正常,但是當我嘗試執行以下腳本時,它失敗了:
{
name: "Gerar aab",
script: `cd ${PATH}/${projectId}/aplicativo/platforms/android && ./gradlew bundle`
}
控制臺結果 (stderr):
Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.
FAILURE: Build failed with an exception.
* Where:
Script '/opt/lupi/lupiteste/aplicativo/platforms/android/CordovaLib/cordova.gradle' line: 121
* What went wrong:
A problem occurred evaluating project ':app'.
> Unable to determine Android SDK directory.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 9s
問題是相同的命令在終端中完美運行。我嘗試使用 shelljs,現在使用 child_process,并使用 cwd 選項代替 cd 但同樣的問題。該應用程式在 Debian 10 服務器中運行。請問怎么解決?
uj5u.com熱心網友回復:
默認的 shellexec是`/bin/sh'。您在終端中的 shell 可能是 bash。所以這可能是一個區別,但您可以在選項中指定一個 shell。
這看起來像是腳本環境的問題,因此您可能想要檢查預期的路徑環境變數是否是您認為在子行程中的內容。如果需要,您也可以在選項中指定環境。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/386448.html
