我希望每次更改时都运行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重新运行安装脚本? 感谢
答案 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']