Решение:
1. В конфигурациях отладки Phpstorm создаёте профиль "Attach to Node.js/Chrome",
там укажите параметр Attach to в значении Chrome or Node.js
2. В package.json в секции scripts запишите команду
"произвольное имя": "node --inspect-brk <путь до файла> [параметры]"
3. Запустите команду из консоли npm run <произвольное имя>
4. Запустите настроенную в первом шаге сессию отладки
Всё, скрипт остановится там, где вы указали точки остановки.
Что не сработает:
1. Указание в шебанг
#!/usr/bin/env -S node --inspect
Дело в том, что на Windows это строчка игнорируется, но используется npm при вызове команды npm link, без которой вызов пакета по короткой команде не сработает.
npm link создает команды (читая строку шебанг и параметры из нее) в специальной директории, но там вызов скрипта ссылается на пакет в папке node_modeles.
Получается ваш код запускается из node_modeles, где точек остановки нет и профиль Attach to Node.js/Chrome эту папку по умолчанию игнорирует.
Я пробовал добавить точки остановки и добавить папку в прослушиваемые, но с первого раза не сработало, а больше времени я тратить не хочу.
В деталях могу напутать, если кто поправит буду признателен.