Android 从nodejs运行gradlew
正在尝试从nodeJS运行gradlew:Android 从nodejs运行gradlew,android,node.js,gradle,child-process,spawn,Android,Node.js,Gradle,Child Process,Spawn,正在尝试从nodeJS运行gradlew: const spawn = require('child_process').spawn; const path = require('path'); function run() { var path_dir = path.resolve('./../movies/VanillaApp/android'); var options = { cwd: path_dir }; const ls =
const spawn = require('child_process').spawn;
const path = require('path');
function run() {
var path_dir = path.resolve('./../movies/VanillaApp/android');
var options = {
cwd: path_dir
};
const ls = spawn('gradlew', ['assembleRelease'], options);
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
ls.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
}
module.exports = {
run: run
};
终端设备:
> ./gradlew assembleRelease
获取:
events.js:154
throw er; // Unhandled 'error' event
^
Error: spawn gradlew ENOENT
at exports._errnoException (util.js:856:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
at onErrorNT (internal/child_process.js:344:16)
at _combinedTickCallback (node.js:377:13)
at process._tickCallback (node.js:401:11)
at Function.Module.runMain (module.js:449:11)
at startup (node.js:141:18)
at node.js:933:3
更新:
我已设法使用child_process.exec运行,但没有使用spawn。我自己刚刚偶然发现这个问题,并设法使用命令行选项使用
spawn
运行gradlew
:
var taskDone = this.async();
grunt.util.spawn({
cmd: "my/relative/path/gradlew",
args: ["clean", "--project-dir", "my/relative/path"],
opts: {
stdio: "inherit"
}
}, function (error, result) {
if (error) {
taskDone(false);
} else {
taskDone();
}
});