"node --debug"和"node --debug-brk"是无效的。

13
我已更新节点(v8.1.2)。当我想要使用NTVS(在Visual Studio 2017中)调试我的以前的Node.js测试项目时,出现了以下错误:
标准错误:(node:5292)[DEP0062] DeprecationWarning:node --debugnode --debug-brk是无效的。请改用node --inspectnode --inspect-brk
问题很明显。该工具尝试运行node --debug启动项目。
问题是,我应该如何在Visual Studio 2017中将node --debug更改为node --inspect以运行测试?
此外,我还应该提到,我无法通过将--inspect添加到脚本参数来解决问题。

你不能为此创建一个npm脚本吗?我的建议是在package.json中创建一个调试脚本。 - franckstifler
这在专业软件中不太可能发生,也就是说,在一个版本到另一个版本之间,软件不会通过更改命令名称来拒绝服务。 - user250343
这个问题在Stack Overflow上有很多其他的相关问题,从不同的角度进行了讨论:https://dev59.com/6qjka4cB1Zd3GeqPEMu- 和 https://stackoverflow.com/questions/49334812/ 至少可以参考一下。 - MarkHu
6个回答

2
如果还有人遇到这个问题,在你的 wdio.conf.js 中,将 debug: true, execArgv: ['--debug=127.0.0.1:5859'] 替换为 inspect: true, execArgv: ['--inspect=127.0.0.1:5859']。请注意不要删除任何 HTML 标记。

2
您可以使用Chrome的开发者工具进行如下调试:
  1. 使用--inspect选项启动Node,例如:$node --inspect app.js。您应该会看到类似以下内容的控制台输出:

    Debugger listening on ws://127.0.0.1:9229/2558baab-1141-4db3-8d10-771586f876a6

  2. 打开Chrome浏览器并浏览至chrome://inspect。点击“为Node打开专用的开发者工具”链接。


2
我做了以下操作:
1. mv /usr/local/bin/node /usr/local/bin/node_bin
2. echo > /usr/local/bin/node
3. editor /usr/local/bin/node
在节点中插入脚本:
#!/bin/bash
## the script converting parameters for nodejs new version
##
new_name="node_bin";
eval _options="(" $(echo -e $@) ")"
_node=$(whereis -b $new_name|awk '/^'$new_name':/{print $2}');                                                                              
eval _version="(" $(echo -e $($_node --version|sed 's/[^0-9]/ /g')) ")";                                                                    
# local values                                                                                                                              
old_options=( "--debug" "--debug-brk" );                                                                                                    
new_options=( "--inspect" "--inspect-brk" );                                                                                                
_opt=();                                                                                                                                    

function filtr() {                                                                                                                          
    _opt=${_options[@]};                                                                                                                    
    for ((get_i=0; get_i != ${#old_options[@]}; get_i++))                                                                                   
        do                                                                                                                                  
        if [ ${new_options[$get_i]} = "" ];
            then
                _opt=${_opt[@]};
            else
                _opt=$( echo -e ${_opt[@]}|sed 's/'${old_options[$get_i]}'/'${new_options[$get_i]}'/g');
        fi
    done

}

function convert() {

if [ $(echo -e ${#_options[@]}) = 0 ];
    then 
        $_node;
    else
     filtr;

        $_node $(echo -e ${_opt[@]})
fi
exit 0;
}

if (( ${_version[0]} >= 7 ));
 then
   convert;
fi
exit 0;
  1. chmod ugo+x /usr/local/bin/node
    我不会说这个决定很优雅,但它确实帮助了我。

1

我曾经遇到过同样的问题,通过升级到VS2017版本15.2解决了。


0

你应该将IDE vsc更新到最新版本(v1.13),我的node版本是v8.0.0;这可以解决这个问题。


-1

你应该将你的nodejs降级到7.0.0或更低版本。 在Windows上使用NVM,请参见此post

你可以在电脑上安装多个node版本。

祝好运!


我需要Node.js v8!因此,这次更新是有意识的。 - OmG
我不知道,我认为这个更新是一个不完整的版本。我使用过v7,它没有显示错误。 - Cristian Agudelo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接