如何在检查模式下启动jscodeshift?

时间:2019-06-08 21:22:44

标签: jscodeshift codemod

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

通过运行以下命令:

  

node --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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

对我有用的东西

  1. 启动节点检查器
  2. jscodeshift 安装到本地 repo 中,作为 dev 依赖项。
  3. 在脚本中添加 debugger 语句
  4. 通过带有 val result: Dataset[(String, String)] = sparkSession.read.textFile("filePath").flatMap { line => val str = line.split("\t") if (str.length == 2) { Some((str(0), str(1))) } else { //in case if you want to ignore malformed line None } } arg的节点运行jscodeshift,并添加了--debug-brk jscodeshift参数。 例如 :- 我进入了节点

    --run-in-band

如果在文件末尾添加文件模式,则可以正常工作,如果只想测试一个故障文件,则在调试时很有用。

我没有测试通过--debug-brk ./node_modules/jscodeshift/bin/jscodeshift.sh -t my-refactor-script.js --run-in-band安装的调试jscodeshift

答案 2 :(得分:0)

最适合我的答案是安装ndbhttps://github.com/GoogleChromeLabs/ndb,并在命令前加上前缀。

  

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