如果 require 未在此 Node.js 上下文中定义,如何使用?
How to use require if it is not defined in this Node.js context?
我运行这个:
$ node inspect cypress/support/reset-fixture.js teardown
在该文件中,我调用了一个包含 debugger;
语句的地方。
我输入 c
继续前往那个地方。
到达那里后,我输入 repl
并在回复中输入 require
.
我收到一条错误消息说那个地方没有 require
: ReferenceError: 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
似乎存在并且可以使用。
之后如何使用 require c
?
我用的是这个Node版本:v12.18.0.
谢谢。
更新
我已经发布了一个答案,但进一步的解释会有所帮助。如果能有一个更详细的答案来解释幕后的工作原理,那就太好了。
如果我把这行写成:
console.dir(require);
行前:
debugger;
然后当 debugger;
行被命中时,在 Node 调试器的 repl
中 require
函数定义良好。
我运行这个:
$ node inspect cypress/support/reset-fixture.js teardown
在该文件中,我调用了一个包含 debugger;
语句的地方。
我输入 c
继续前往那个地方。
到达那里后,我输入 repl
并在回复中输入 require
.
我收到一条错误消息说那个地方没有 require
: ReferenceError: 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
似乎存在并且可以使用。
之后如何使用 require c
?
我用的是这个Node版本:v12.18.0.
谢谢。
更新
我已经发布了一个答案,但进一步的解释会有所帮助。如果能有一个更详细的答案来解释幕后的工作原理,那就太好了。
如果我把这行写成:
console.dir(require);
行前:
debugger;
然后当 debugger;
行被命中时,在 Node 调试器的 repl
中 require
函数定义良好。