何らかの理由で、コマンドに問題がある理由がわかりませexec
ん。参照したドキュメントと例に正しく従ったと思います。ターミナルでこのコマンドを実行すると、問題はありません。
gitleaks --repo=https://github.com/user/repo -v --username=foo --password=bar
しかし、それをモジュールとしてコーディングしようとすると、package.json で呼び出すことができます。
const { exec } = require("child_process")
const test = `gitleaks --repo=https://github.com/user/repo -v --username=foo --password=bar`
const execRun = (cmd) => {
return new Promise((resolve, reject) => {
exec(cmd, (error, stdout, stderr) => {
if (error) reject(error)
resolve(stdout ? stdout : stderr)
})
})
}
(async () => {
try {
const testing = await execRun(test)
console.log(testing)
} catch (e) {
console.log(e)
}
})()
しかし、引き続きエラーが発生します。
{ Error: Command failed: gitleaks --repo=https://github.com/user/repo -v --username=foo --password=bar
at ChildProcess.exithandler (child_process.js:294:12)
at ChildProcess.emit (events.js:198:13)
at maybeClose (internal/child_process.js:982:16)
at Socket.stream.socket.on (internal/child_process.js:389:11)
at Socket.emit (events.js:198:13)
at Pipe._handle.close (net.js:606:12)
killed: false,
code: 1,
signal: null,
cmd:
'gitleaks --repo=https://github.com/user/repo -v --username=foo --password=bar' }
私は自分の問題を調査して、何かが足りないかどうかを確認しようとしました。
- nodejs exec コマンドが失敗し、有用なエラー メッセージが表示されない
- ノードの子プロセス実行コマンドがエラー コード 1 で失敗しました
- 一部の Windows コマンドで nodejs exec コマンドが失敗し、明確なエラー メッセージが表示されない
- NodeJS子プロセスのEXECコマンドがNVM権限で失敗し、OSXが拒否されました
exec
コマンドが失敗するのに、ターミナルで同じコマンドを渡すことができ、それが機能するのはなぜですか?