The -si param does not make 7-zip behave like zip on linux/mac. -si expects the data that is to be compressed to be piped in over stdin, not a list of files. While 7-zip does support a @listfiles.txt as the last argument that is a file containing separate files to be compressed, for the sake of this functionality, just pass them in to the 7zip command as extra args. Also, the variable "resultArc" doesn't even exist. Was this tested?

        child = spawn(
            path.resolve(module.filename, '..', '..', 'tools','7zip', '7za.exe'),
            ['a', '-tzip', result].concat(targets.map(function (p) {
                var x = p.indexOf(cwd);
                if (x >= 0) {
                    p = p.replace(cwd, '');
                    if (/^(\/|\\)/.test(p)) {
                        p = p.substring(1);
                    }
                }
                if (!p) {
                    p = '.';
                }
                return p;
            })),
            { cwd : cwd });
        }
        child.stdout.on('data', function (data) {
            stdout += data.toString();
        });
        child.stderr.on('data', function (data) {
            stderr += data.toString();
        });