我正在尝试检查Node项目中是否缺少或不必要的依赖项,因此我尝试了depchecknpm-check,但是它们都以相同的方式失败,声称实际上全部使用了五个依赖项都是不必要的,据我所知,它们是以正常方式使用的; package.json bin指向ayane.js,其中包含依赖项的require指令。我尝试将--ignore-bin-package=false指定为depcheck,但这没什么区别。项目https://github.com/russellw/ayane非常小而简单,并且没有任何奇怪的事情。

我想念什么?这两个程序都被广泛使用;他们有已知问题吗?

最佳答案

实际上,depcheck似乎不影响函数外的return语句。
如果运行depcheck --json,则可以看到depcheck将ayane.js视为invalidFiles:


  “ invalidFiles”:{“ ayane / ayane.js”:“语法错误:函数(62:1)之外的'return'...


我不是这方面的专家,并且我在函数外也没有使用return太多,因此我不确定这是否是一个不好的做法,特别是在这种情况下(并且仍然对此感到好奇)。
有关信息,MDN错误参考:SyntaxError: return not in function

您可以尝试在项目的源代码中替换该行(例如,将其替换为console.log('exit')),然后尝试重新启动depcheck:您将不再收到“未使用的依赖项”警告,而是“ get-stdin缺少依赖项”警告,并且这是正确的。

// ayane.js l.61
if (!commander.lang && !commander.args.length && tty.isatty(process.stdin.fd))
    return


如果需要,可以在depcheck存储库中以错误警报的形式打开问题。
https://github.com/depcheck/depcheck#false-alert

09-18 18:18