我正在编写一个Gulp任务,该任务将执行curl请求以将文件上传到API。
以下是从命令行按预期执行的请求:
curl \
-F "files[strings.pot]=@/path/to/file/i18n/strings.pot" \
-F "json=true" \
https://api.crowdin.com/api/project/xxxxxx/update-file?key=yyyyyy
这是我到目前为止所写的任务:
var args = [];
args.push('-F "files[strings.pot]=@/path/to/file/i18n/strings.pot"')
args.push('-F "json=true"');
args.push('https://api.crowdin.com/api/project/'+meta.crowdin.projectIdentifier+'/update-file?key='+meta.crowdin.projectKey);
cp.spawn('curl', args, { stdio: 'inherit' })
.on('close', function(){
bundleLogger.end("Crowdin - Did upload POT in");
})
.on('exit', function(code){
console.log('Exit code: '+code);
});
返回curl: (26) couldn't open file "/path/to/file/i18n/strings.pot"
。
child_process是否会产生不同的权限或$ PATH或会导致此错误的东西?
答案 0 :(得分:0)
我已经解决了这个问题。
"files[strings.pot]..."
周围的双引号被视为文件名的一部分。这有效:
var args = [];
args.push('-F files[strings.pot]=@/path/to/file/i18n/strings.pot');
args.push('-F json=true');
args.push('https://api.crowdin.com/api/project/'+meta.crowdin.projectIdentifier+'/update-file?key='+meta.crowdin.projectKey);
cp.spawn('curl', args, { stdio: 'inherit' })
.on('close', function(){
bundleLogger.end("Crowdin - Did upload POT in");
})
.on('exit', function(code){
console.log('Exit code: '+code);
});