javascript - Heroku-loggvarning "(node) sys är föråldrat. Använd util istället" när skriptet körs


Jag har distribuerat ett Node-skript på Heroku för att köras av en schemaläggare. Men när skriptet körs ser jag en varning i loggarna.

Dec 07 11:01:10 xxx heroku/scheduler.3255 Starting process with command `node bin/script` 
Dec 07 11:01:13 xxx app/scheduler.3255:  (node) sys is deprecated. Use util instead. 

Jag har inte deklarerat en engine-sektion i min package.json.

Är det ett problem med Node-versionen? Hur kan jag undvika denna varning?

Tack!

Svar #1

Detta händer eftersom (uppenbarligen) 'sys' har blivit föråldrat och ersatts av 'util'.

Om du inte använder 'sys' direkt (sök i din kodbas efter något som require('sys')) så kan det vara ett av modulerna du beroende av (eller dess beroenden).

För att hitta den felaktiga modulen, gör ett npm install på ditt projekt och sedan grep efter require('sys') (eller med dubbla citattecken) för att se om du kan hitta modulen. Exempel på grep-kommando:

grep -r "require('sys')" .

Om du verkligen vill att den varningen ska försvinna och den finns i ett beroende eller underberoende har du några val:

  1. Byt ut modulen som använder sys mot en som inte gör det men fortfarande erbjuder samma funktionalitet. (Kontrollera att det inte finns en nyare version av modulen som har åtgärdat detta problem.)
  2. Skicka en Pull Request som åtgärdar problemet i modulen.