0

当我试图做如下事情时:

exec('test -e package.json && npm install', function (err, stdout, stderr) {...});

当文件不存在时出现错误。为什么?如何区分真正的执行错误和文件缺失?

更新

来自手册页:测试实用程序计算表达式,如果计算结果为真,则返回零(真)退出状态;否则返回 1(假)。如果没有表达式,test 也返回 1 (false)。

这是否意味着错误 - 正确的行为?是否可以检查文件然后npm install仅使用 bash 执行?

4

1 回答 1

2

当你执行

test -e package.json && npm install

andpackage.json不存在,test则将失败,npm不会执行(因为&&)并且整个表达式将被视为失败。(这不足为奇;如果不是这样,你就不能做类似a && b && cor的事情a && b || c。)

因此,如果您希望整个表达式返回成功,则需要指出:

test -e package.json && npm install || true
于 2013-08-25T21:36:01.927 回答