• Phpstorm: как отлаживать js запускаемый из командной строки?

    @WantToBelieve Автор вопроса
    Решение:
    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 эту папку по умолчанию игнорирует.
    Я пробовал добавить точки остановки и добавить папку в прослушиваемые, но с первого раза не сработало, а больше времени я тратить не хочу.

    В деталях могу напутать, если кто поправит буду признателен.
    Ответ написан
    Комментировать