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

时间:2016-02-16 13:48:07

标签: node.js cmd gulp arangodb

我希望每次更改时都运行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);
        }));
});

但结果是:

  

{[错误:命令失败:C:/ Program Files / ArangoDB   2.8 / bin / foxx-manager.exe --server.database" my_db_name" run" / db"建立       C:/ Program Files / ArangoDB 2.8 / bin / foxx-manager.exe:无法识别的选项' - server.database" my_db_name" run" / db"设置'       你的意思是其中之一吗? --help --quiet       2016-02-16T13:42:17Z [1564]致命的非法选择       ]         杀了:假,         代码:1,         signal:null,         cmd:' C:/ Program Files / ArangoDB 2.8 / bin / foxx-manager.exe --server.database" my_db_name" run" / db"设置' }       C:/ Program Files / ArangoDB 2.8 / bin / foxx-manager.exe:无法识别的选项' - server.database" my_db_name" run" / db"设置'

     

你的意思是其中之一吗? --help --quiet

     

2016-02-16T13:42:17Z [1564]致命的非法选择

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

  

{" code":200}

每次更改时,如何使用gulp重新运行安装脚本? 感谢

1 个答案:

答案 0 :(得分:1)

这看起来更像是一个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']