Node.js中执行node -p __filename返回[eval]是什么含义?
node -p __filename返回[eval]的含义解读 基础背景
__filename是Node.js CommonJS模块体系的内置变量,设计上仅返回当前正在执行的实体JS模块文件的绝对路径,本身就不会返回Node.js二进制程序的路径,你的原有预期是错误的。-p(--print)是Node.js的启动参数,作用是把后续传入的字符串当作JS代码直接动态求值并打印结果,整个过程不会读取磁盘上任何实体JS文件执行,你使用的v14.17.4版本对该参数的处理逻辑符合Node.js标准设计。
[eval]的含义
动态传入的JS代码没有对应的磁盘实体模块文件,Node.js会给这类动态执行的上下文(包括eval调用、命令行直接传入代码执行等场景)分配虚拟的文件名标识,[eval]就是这类动态执行上下文的默认文件名标记,你看到的结果属于预期内的正常行为。
如果你需要获取Node.js二进制程序的绝对路径,应该执行命令:node -p process.execPath
内容的提问来源于stack exchange,提问作者Srikanth Suresh
相关产品推荐
相关产品推荐

