gulp 的 ArangoDB foxx-manager 不知道命令 --server.database

ArangoDB foxx-manager with gulp doesn't know command --server.database

我想 运行 setup.js 每次更改脚本。我写了以下 gulp 脚本:

gulp.task('db_server_setup', function(){
    gulp.src(paths.db_server_setup)
        .pipe(gulp.dest(paths.db_dist))
        .pipe(callback(() => {
            process.execFile('C:/Program Files/ArangoDB 2.8/bin/foxx-manager.exe', ['--server.database "my_db_name" run "/db" setup'], {stdio: 'inherit'}, exec_output);
        }));
});

但结果是:

{ [Error: Command failed: C:/Program Files/ArangoDB 2.8/bin/foxx-manager.exe --server.database "my_db_name" run "/db" setup C:/Program Files/ArangoDB 2.8/bin/foxx-manager.exe: unrecognized option '--server.database "my_db_name" run "/db" setup' Did you mean one of these? --help --quiet 2016-02-16T13:42:17Z [1564] FATAL illegal option ] killed: false, code: 1, signal: null, cmd: 'C:/Program Files/ArangoDB 2.8/bin/foxx-manager.exe --server.database "my_db_name" run "/db" setup' } C:/Program Files/ArangoDB 2.8/bin/foxx-manager.exe: unrecognized option '--server.database "my_db_name" run "/db" setup'

Did you mean one of these? --help --quiet

2016-02-16T13:42:17Z [1564] FATAL illegal option

当我执行 "C:/Program Files/ArangoDB 2.8/bin/foxx-manager.exe" --server.database "organize_me" run "/db" setup 它 运行 成功

{"code": 200}

我怎样才能在每次更改时用 gulp 重新 运行 安装脚本? 谢谢

这看起来更像是 Node 问题而不是 ArangoDB 问题。

child_process.execFile 采用可执行文件的名称以及参数数组。您的参数数组当前如下所示:

['--server.database "my_db_name" run "/db" setup']

据我所知,这相当于在命令行上传递以下参数:

"--server.database \"my_db_name\" run \"/db\" setup"

所以你真正想要的可能是这样的:

['--server.database', 'my_db_name', 'run', '/db', 'setup']