2

这曾经是可运行的,但最近我遇到了以下问题。

通过运行以下命令:

节点 --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 
4

3 回答 3

1

什么对我有用:

  1. 启动节点检查器
  2. 在我的本地仓库中安装jscodeshift作为开发依赖项。
  3. 在我的脚本中放入调试器语句
  4. 通过带有 arg 的节点运行 jscodeshift--debug-brk并添加了--run-in-bandjscodeshift 参数。例如:-我输入了节点

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

如果您在最后添加一个文件模式,它可以正常工作,这在您只想测试一个故障文件时在调试的情况下很有帮助。

我没有测试jscodeshift通过安装的调试npm -g

于 2019-07-08T16:24:57.343 回答
1

对我有用的答案是安装ndbhttps://github.com/GoogleChromeLabs/ndb,并在命令前加上它。

ndb 节点 --inspect-brk ./node_modules/.bin/jscodeshift mod.js

于 2019-07-09T00:14:52.603 回答
0

检查模式不起作用的原因是因为另一个进程(例如检查器的另一个实例)已经在使用默认端口(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

于 2019-07-03T11:53:07.027 回答