如果未在此Node.js上下文中定义require,如何使用?

问题描述 投票:0回答:1

我运行这个:

$ node inspect cypress/support/reset-fixture.js teardown

在那个文件中,我打电话到有debugger;语句的地方。

我键入c继续到那个地方。

一旦到达那儿,我就输入repl,并重复输入require

我收到一个错误消息,说那个地方没有requireReferenceError: require is not defined

终端会话在下面:

 /m/s/S/L/T/volto-slate-project > node inspect cypress/support/reset-fixture.js teardown                                             
< Debugger listening on ws://127.0.0.1:9229/0b6b3784-8e0c-4c35-8baa-46ea102b4bfa
< For help, see: https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in cypress/support/reset-fixture.js:1
> 1 const xmlrpc = require('xmlrpc');
  2 
  3 // const args = process.argv;
debug> c
break in node_modules/xmlrpc/lib/client.js:119
 117 
 118     if (response.statusCode == 404) {
>119       debugger;
 120       callback(__enrichError(new Error('Not Found')))
 121     }
debug> repl
Press Ctrl + C to leave debug repl
> require
ReferenceError: require is not defined
    at eval (eval at <anonymous> (/media/silviu/Samsung_T5/Lucru/Tibi/volto-slate-project/node_modules/xmlrpc/lib/client.js:119:7), <anonymous>:1:1)
    at Client.<anonymous> (/media/silviu/Samsung_T5/Lucru/Tibi/volto-slate-project/node_modules/xmlrpc/lib/client.js:119:7)
    at Object.onceWrapper (events.js:422:26)
    at ClientRequest.emit (events.js:315:20)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:596:27)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:119:17)
    at Socket.socketOnData (_http_client.js:469:22)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:295:12)
    at readableAddChunk (_stream_readable.js:271:9)

如果我在上述会话中没有键入c,则似乎require存在并且可以使用。

c之后如何使用require?

我使用此节点版本:v12.18.0。

谢谢。

更新

我已经发布了答案,但是进一步的解释会有所帮助。一个更详细的答案来解释事情在幕后的工作方式将非常不错。

node.js debugging node-modules require referenceerror
1个回答
0
投票

如果我放在这行:

console.dir(require);

在该行之前:

debugger;

然后单击debugger;行时,在节点调试器的repl中很好地定义了require函数。

© www.soinside.com 2019 - 2024. All rights reserved.