I also had the same issue, the workaround I found is to use
pm2 start node -- .This way pm2 starts up node which starts your app. In my case I use . (Starts the main: entry in package.json), but I'm sure you can also usepm2 start node -- server.jsorpm2 start npm -- start(I haven't tried these, but I don't see why they wouldn't work). I run a discord bot and for some reason if I add--watchit restarts my bot every time I do a command, this might be a side effect from using this work around. Although I can't be sure since I can't get my bot to run withpm2 start server.js. I've also tried to runpm2 start nodemon -- server.jsas a workaround to the--watchissue but that throws a syntax error for: @ECHO off in the nodemon package