Как запустить jscodeshift в режиме проверки?

Раньше это работало, но недавно я столкнулся со следующей проблемой.

Запустив следующую команду:

узел --inspect-brk ./node_modules/.bin/jscodeshift файл mod.js.

Я сталкиваюсь с этой проблемой

Debugger listening on ws://127.0.0.1:9229/7e57a2d3-0885-44b3-b51e-b47dc8417d87
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
Processing 1 files... 
Spawning 1 workers...
Sending 1 files to free worker...
Starting inspector on 127.0.0.1:9229 failed: address already in use
All done. 
Results: 
0 errors
0 unmodified
0 skipped
0 ok
Time elapsed: 0.035seconds 

3 ответа

Что сработало для меня:

  1. Начать узел-инспектор
  2. Установите jscodeshift в моем локальном репозитории как зависимость от разработчика.
  3. поместите отладчик в мой скрипт
  4. запустить jscodeshift через узел с --debug-brk Арг и добавил --run-in-band jscodeshift param. Например:- Я ввел узел

    --debug-brk ./node_modules/jscodeshift/bin/jscodeshift.sh -t my-refactor-script.js --run-in-band

Если вы добавляете шаблон файла в конце, он работает нормально, что в случае отладки полезно, когда вы хотите протестировать только один файл с проблемами.

Я не тестировал отладку jscodeshift установлен через npm -g

Ответ, который работал для меня, устанавливал ndb https://github.com/GoogleChromeLabs/ndb и добавьте к нему префикс команды.

Узел ndb --inspect-brk ./node_modules/.bin/jscodeshift mod.js

Причина, по которой режим проверки не работает, заключается в том, что другой процесс (например, другой экземпляр инспектора) уже использует порт по умолчанию (9229), поэтому они противоречат друг другу. Либо используйте другой порт для инспектора, либо завершите процесс, который в данный момент использует этот порт.

Если вы используете другой порт, вы сможете запустить инспектор. Просто введите желаемый номер порта (например, 39479) чтобы --inspect-brk,

Ваш пример:node --inspect-brk ./node_modules/.bin/jscodeshift mod.js file.

Например, может быть: node --inspect-brk=39479 ./node_modules/.bin/jscodeshift mod.js file.

ОПАСНОСТЬ: Если вам нужен порт 9229, вы можете убить процесс / инспектора, который в данный момент использует этот порт, но если вы не знаете, что делает этот процесс, вы можете повредить вещи: lsof -i TCP:9229 | grep LISTEN | awk '{print $2}' | xargs kill -9

Другие вопросы по тегам