我正在建造happyfuntimes api。我已经广泛使用它了,但我突然收到一个错误,阻止一切工作。错误的日志是:
/Applications/HappyFunTimes.app/Contents/hft/lib/computername.js:38
computerName = res.stdout.split()[0];
^
TypeError: Cannot read property 'stdout' of undefined
at /Applications/HappyFunTimes.app/Contents/hft/lib/computername.js:38:23
at ChildProcess.<anonymous> (/Applications/HappyFunTimes.app/Contents/hft/lib/utils.js:67:7)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:818:16)
at Socket.<anonymous> (internal/child_process.js:319:11)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at Pipe._onclose (net.js:469:12)
我知道问题不在于代码,因为它在其他地方有用。我尝试多次卸载并重新安装happyfuntimes,node,npm和bower。我已经清理了节点和npm上的缓存。我尝试过多个不同版本的node和npm。我正在运行Mac 10.9.5。我可以在此消息中找到的唯一相关错误处理grunt,并且我尝试了该范围内的各种解决方案。如果有人能指出我对这个错误的一般正确方向,我将非常感激!谢谢你的阅读!
答案 0 :(得分:2)
如果你导航github存储库,你可以找到computername.js和错误的上下文:
if (process.platform.toLowerCase() === 'darwin') {
utils.execute('scutil', ['--get', 'ComputerName'], function(err, res) {
computerName = res.stdout.split()[0];
});
}
我认为函数调用utils.execute
失败,因此res
没有值。您的系统上可能不存在'scutil'
。
我建议像这样添加错误检查代码:
if (process.platform.toLowerCase() === 'darwin') {
utils.execute('scutil', ['--get', 'ComputerName'], function(err, res) {
if (err) {
console.log("Error in scutil: " + err);
}
else {
computerName = res.stdout.split()[0];
}
});
}
检查结果输出到控制台。