小编典典

为什么节点 REPL 中没有定义 __dirname?

all

从节点手册中我看到我可以使用 获取文件的目录__dirname,但是从 REPL 中这似乎是未定义的。这是我的误解还是错误在哪里?

$ node
> console.log(__dirname)
ReferenceError: __dirname is not defined
    at repl:1:14
    at REPLServer.eval (repl.js:80:21)
    at Interface.<anonymous> (repl.js:182:12)
    at Interface.emit (events.js:67:17)
    at Interface._onLine (readline.js:162:10)
    at Interface._line (readline.js:426:8)
    at Interface._ttyWrite (readline.js:603:14)
    at ReadStream.<anonymous> (readline.js:82:12)
    at ReadStream.emit (events.js:88:20)
    at ReadStream._emitKey (tty.js:320:10)

阅读 76

收藏
2022-06-28

共1个答案

小编典典

__dirname仅在脚本中定义。它在 REPL 中不可用。

尝试制作脚本a.js

console.log(__dirname);

并运行它:

node a.js

你会看到__dirname打印出来的。

添加背景说明:__dirname表示“此脚本的目录”。在 REPL 中,您没有脚本。因此,__dirname不会有任何实际意义。

2022-06-28