From 816f06be2a5b602173c69e12e7538d0ebcd9ac01 Mon Sep 17 00:00:00 2001 From: Artem Derevnjuk Date: Mon, 15 Apr 2024 14:46:52 +0400 Subject: [PATCH] fix spawn EINVAL error fixes #83 --- index.js | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/index.js b/index.js index ca9829a..ba1d35a 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,4 @@ -var proc = require('child_process') -var execspawn = require('execspawn') +var childProcess = require('child_process') var os = require('os') var path = require('path') var fs = require('fs') @@ -19,7 +18,7 @@ function prebuildify (opts, cb) { strip: process.env.PREBUILD_STRIP === '1', stripBin: process.env.PREBUILD_STRIP_BIN || 'strip', nodeGyp: process.env.PREBUILD_NODE_GYP || npmbin('node-gyp'), - shell: process.env.PREBUILD_SHELL || shell(), + shell: process.env.PREBUILD_SHELL || true, cwd: '.', targets: [] }, opts) @@ -179,11 +178,12 @@ function copySharedLibs (builds, folder, opts, cb) { function run (cmd, opts, cb) { if (!cmd) return cb() - var child = execspawn(cmd, { + var child = childProcess.spawn(cmd, [], { cwd: opts.cwd, env: opts.env, - stdio: 'inherit', - shell: opts.shell + stdio: opts.quiet ? 'ignore' : 'inherit', + shell: opts.shell, + windowsHide: true }) child.on('exit', function (code) { @@ -227,9 +227,11 @@ function build (target, runtime, opts, cb) { } mkdirp(cache, function () { - var child = proc.spawn(opts.nodeGyp, args, { + var child = childProcess.spawn(opts.nodeGyp, args, { cwd: opts.cwd, env: opts.env, + shell: opts.shell, + windowsHide: true, stdio: opts.quiet ? 'ignore' : 'inherit' }) @@ -266,7 +268,13 @@ function strip (file, opts, cb) { if (!opts.strip || (platform !== 'darwin' && platform !== 'linux')) return cb() var args = platform === 'darwin' ? [file, '-Sx'] : [file, '--strip-all'] - var child = proc.spawn(opts.stripBin, args, { stdio: 'ignore' }) + var child = childProcess.spawn(opts.stripBin, args, { + stdio: 'ignore', + cwd: opts.cwd, + env: opts.env, + shell: opts.shell, + windowsHide: true + }) child.on('exit', function (code) { if (code) return cb(spawnError(opts.stripBin, code)) @@ -299,10 +307,6 @@ function npmbin (name) { return os.platform() === 'win32' ? name + '.cmd' : name } -function shell () { - return os.platform() === 'android' ? 'sh' : undefined -} - function resolveTargets (targets, all, napi, electronCompat) { targets = targets.map(function (v) { if (typeof v === 'object' && v !== null) return v