我正在尝试检查Node项目中是否缺少或不必要的依赖项,因此我尝试了depcheck
和npm-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